Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Abrir archivo desde ASP.Net que no está en el servidor web

1,774 views
Skip to first unread message

Mookie

unread,
Oct 13, 2009, 8:32:58 AM10/13/09
to
Hola buenas!!

Ando detrás del tema de abrir un fichero en ASP.NET que no está en el
servidor web.
Por una parte está el servidor web, y luego tenemos otro servidor con
archivos en su mayoría PDF.

Desde un aspx quisiera abrirlos y ando bastante perdido. Tengo una
pagina con el siguiente codigo:

Response.Clear()
Response.ContentType = "application/pdf"
Response.AddHeader("Content-Disposition", "attachment;
filename=" + "\\datos\ATJ\2.- OFERTAS\Java2.pdf")

Response.Flush()
Response.WriteFile(\\datos\ATJ\2.- OFERTAS\Java2.pdf)
Response.End()

El problema que tengo es que desde el entorno de desarrollo abre el
PDF correctamente, pero cuando lo publico no funciona y dice que está
dañado. No se, algo se me está escapando.

¿Alguna sugerencia?

Alberto Poblacion

unread,
Oct 13, 2009, 11:34:51 AM10/13/09
to
"Mookie" <mook...@gmail.com> wrote in message
news:b42876d5-58e9-4a60...@k4g2000yqb.googlegroups.com...
> [...]

> El problema que tengo es que desde el entorno de desarrollo abre el
> PDF correctamente, pero cuando lo publico no funciona y dice que est�
> da�ado. No se, algo se me est� escapando.

�C�mo has configurado los permisos? En el entorno de desarrollo, usando
el servidor interno de Visual Studio, el code-behind de la p�gina se ejecuta
con los permisos del usuario que est� ejecutando el Visual Studio. Este
usuario eres t� mismo y probablemente tienes permisos para acceder a la
carpeta compartida del servidor donde est�n los archivos.
Pero cuando lo publicas en IIS, se ejecuta con la identidad del usuario
que tengas asignado para ejecutar asp.net, que si no lo has cambiado
probablemente ser� "Network Service", y este usuario lo m�s seguro es que no
tenga permisos sobre la carpeta compartida.
Una forma de cambiarlo consiste en configurar el web.config para que tu
p�gina se ejecute con impersonaci�n, poni�ndole un <identity
impersonate="true" userName="..." password="..." />.
Otra forma consiste en impersonar por c�digo a un usuario con permisos
adecuados en el momento de acceder al archivo. Si buscas en MSDN, hay un
art�culo que tiene el ejemplo completo de c�mo se impersona a un usuario
desde asp.net.


Luis Alberto Sanz

unread,
Oct 19, 2009, 3:34:51 AM10/19/09
to
Hola, yo lo hago de la siguiente forma:

Protected Sub Descargar_Archivo(ByVal strArchivo As String)

If File_Exist_Server("http://www.xxxx.com/doc/" & strArchivo ) Then

Call abreVentana("http://www.xxxx.com/doc/" & strArchivo )

End If

End Sub

Protected Sub abreVentana(ByVal ventana As String)

Dim scriptString As String = "<script>window.open('" + ventana +
"','','toolbar=1,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,channelmode=0,height=600,width=850,left=50,top=30')</script>"

If (Not ClientScript.IsClientScriptBlockRegistered("WOpen")) Then

ClientScript.RegisterStartupScript(GetType(String), "WOpen", scriptString)

End If

End Sub

Protected Function File_Exist_Server(ByVal Url As String) As Boolean

Dim req As HttpWebRequest = DirectCast(WebRequest.Create(Url),
HttpWebRequest)

req.AllowAutoRedirect = False

' In case the server is configured to redirect on 404

Try

' Get response from the server

Dim res As HttpWebResponse = DirectCast(req.GetResponse(), HttpWebResponse)

' Check response code

If res.StatusCode = HttpStatusCode.OK Then

'System.Diagnostics.Debug.WriteLine("file is accessable")

File_Exist_Server = True

Else

'System.Diagnostics.Debug.WriteLine("file is not accessable")

File_Exist_Server = False

End If

Catch ex As WebException

' Handle DSN error.

'System.Diagnostics.Debug.WriteLine("Name resolution error: " &
ex.ToString())

File_Exist_Server = False

End Try

End Function

"Mookie" <mook...@gmail.com> escribi� en el mensaje
news:b42876d5-58e9-4a60...@k4g2000yqb.googlegroups.com...
Hola buenas!!

Ando detr�s del tema de abrir un fichero en ASP.NET que no est� en el
servidor web.
Por una parte est� el servidor web, y luego tenemos otro servidor con
archivos en su mayor�a PDF.

Desde un aspx quisiera abrirlos y ando bastante perdido. Tengo una
pagina con el siguiente codigo:

Response.Clear()
Response.ContentType = "application/pdf"
Response.AddHeader("Content-Disposition", "attachment;
filename=" + "\\datos\ATJ\2.- OFERTAS\Java2.pdf")

Response.Flush()
Response.WriteFile(\\datos\ATJ\2.- OFERTAS\Java2.pdf)
Response.End()

El problema que tengo es que desde el entorno de desarrollo abre el

PDF correctamente, pero cuando lo publico no funciona y dice que est�
da�ado. No se, algo se me est� escapando.

�Alguna sugerencia?


huam...@gmail.com

unread,
Mar 21, 2016, 1:41:13 PM3/21/16
to
Y como seria si tengo el archivo localmente en mi disco D
0 new messages