2012-01-10 18 views
8

Estoy usando el siguiente código asp.net para transmitir documentos de Word.No se puede descargar [archivo] desde [servidor] No se puede abrir este sitio de Internet. El sitio solicitado no está disponible

 Response.Clear(); 
    Response.ContentType = "application/vnd.ms-word"; 
    Response.AddHeader("content-disposition", "attachment;filename=\"" + Letter.WordFileName.Replace(" ", "%20").Replace("&", "And") + "\""); 
    Response.BinaryWrite(Letter.WordDocument.ToMSWordDocument()); 
    Response.End(); 

La semana pasada, empecé a recibir el siguiente mensaje al intentar transmitir archivos en IE8

No se puede descargar [archivo] de [servidor]

No se puede abrir este sitio de Internet . El sitio solicitado no está disponible o no se puede encontrar. Por favor, inténtelo de nuevo más tarde.

No me sale el error después de actualizar a ie9, pero la mayoría de mis usuarios todavía usan ie8. Tengo la sensación de que esto podría estar relacionado con un parche de seguridad de Windows, pero no he encontrado nada como esto en mis búsquedas de Google.

Aquí hay más información:

  • El error sólo ocurre en IE8
  • No estoy usando HTTPS para mostrar un documento de Word
  • El problema comenzó a suceder la semana pasada.
  • El error existe en sistemas que no se han actualizado durante 3 semanas.
  • Tengo este problema en varias computadoras que usan ie8.

encabezado de respuesta

HTTP/1.1 200 OK Cache-Control:, no-cache privada = "Set-Cookie" Content-Type: application/vnd.ms-palabra Servidor: Microsoft- IIS/7.5 Set-Cookie: .ASPXAUTH = 74B339B8F7578C646C5ABEB1DD798B73409F51EBE28A1EE3CA0E9B16CDA93C1A3B81CA6A82ABABF940A3E828B5B1D7DE503940AD669CD435E28DE36848A706ECA2BF0CAAB408263DFA22166CB796FEAE27A96950DE37A70619C2F59D9C138F39749DC814D41F9839F3414AEDDA7A3A26F5DA92EFAF09BC8C965F61E02DB68B94D8D43C3201528B601896108B0A30B3CDEDF389F3C3D463E2163596186BFE6BADB83DB635193CDE01DA06E0CB3D0F9FAC1C392DA5E30052AD530B803FA92FD72EA7D768B5BB1505BA26B566AED1DC DE7E5423143803434F2C32572427CD6B68A49126E7084947CC52CE315FAC9A94DA1EE4BF765A0F4D2277679F41F6F19275B0067C6223517A959811A24B36C882F9F6D76B1C408B109DBA33991FDC79517A4E7B4C24DEC38E00FA2C7CFBA5566067017CBF34C71D2CC33605A621277C5E6D3E34F45529536140841A0B98720F7129CF49EDB4D3C61553865EE1A332B4273A674FED651FA7525ED6BF180A578B3C0BA0422C40B4C09663BFA3D6E4DD69171C4B2A558506E1B1AFA5788C37EEB8BB2052BA02C91DB14CA0DC5D12F56E62A3016982521480CA104DC3E7451CC92F89003BDE64378961CB8D40753D4031D1CB5A8B78BE6004B97E2128F8ABE584B7961CECF4983C54A48B5E0AB662ECAFF4E04E984C663EA2CBE4C2161FB1D074B06F297378BA15F36927870735833076BB2E43E60BE83E82EBB0138290A761803535BF0590C22F6AAC01397E67C5FE52A3AB5EBB; path =/ content-disposition: attachment; filename = "Septa% 20Roberts% 20Compound% 2020111226 [1] .doc" X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Fecha: mar 10 de enero de 2012 16:07:51 GMT Content-Length: 147456

+0

¿Usted ha intentado utilizar el mismo código que está utilizando para mostrar el contenido de la secuencia de respuesta para escribir un archivo en el servidor y luego tratar usar IE8 para descargar el archivo creado? Ese sería un buen punto de partida para poder usar Fiddler para ver las solicitudes HTTP para el archivo estático y su script de descarga dinámica. –

+0

Usando Response.AddHeader "Cache-control", "no-cache" en alguna parte? Y algunas otras ideas para probar: http://answers.microsoft.com/en-us/ie/forum/ie8-windows_other/error-message-unable-to-open-this-internet-site/758f7a64-b081-4981 -814f-9a7a53434fb8 –

+0

@brad ¿Puedes hacer una prueba para cambiar el nombre del archivo a un nombre de archivo simple sin incluir el corchete y los espacios para ver si funciona? – Aristos

Respuesta

0

Me imagino que esto está sucediendo porque el navegador tiene algo que está causando que otras estaciones de trabajo tengan este problema al intentar acceder a este sitio en IE 8?

1) Búsqueda de malware usando - SpyBot-Search & Destroy - http://www.safer-networking.org/index2.html - Adware - http://www.lavasoft.nu/home.php

2) ¿Tiene alguna antivirus o firewalls instalados adicionales instalados si es así ¿qué es esto? Es posible que necesiten desinstalarse por completo, al menos en forma temporal, para tratar de descubrir qué está causando esto.

0

Lo que podría tratar de hacer es cargar un documento de Word a otro servidor y descargarlo usando IE8 mientras se está ejecutando fiddler. Luego eche un vistazo al encabezado de respuesta y vea qué falta/diferente en su código.

2

intentar sustituir

Response.End(); 

con

Response.Flush 
CompleteRequest() 

en el final del bloque de código (consulte here y there para obtener información adicional). Tal vez el redireccionamiento de Response tiene algún tipo de problema y hace que la respuesta de su servidor falle en los ojos del navegador.

+1

Patrocine una recompensa por esta pregunta porque creo que tenemos el mismo problema con uno de nuestros clientes. No tenemos acceso a la red interna del cliente y no podemos reproducir el problema nosotros mismos. Tristemente, la persona que hizo la pregunta no le prestó atención, así que nadie puede validar la respuesta fácilmente :( concedí la recompensa que estaba a punto de caducar de todos modos a esta respuesta no porque resolvió el problema, sino porque era realmente educativo (verifique las fuentes). – Stilgar

+0

El primer enlace compartido por Alfabravo fue realmente útil y resolvió mi problema. Se trataba del IE y del combo https. Esta respuesta es realmente buena. –

0

Añadir esto y darle una oportunidad:

// check for IE 
if (Request.Browser.Browser == "IE") 
{ 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.AppendHeader(@"Pragma", @"no-cache"); 
} 
2

Después de algunas investigaciones descubrí que un parche de seguridad para asp.net cambia las cabeceras que de alguna manera da lugar a este comportamiento en IE8. Más información aquí: CLICK

0

Encontré la raíz, no use este tipo de personas a menos que realmente sepa cómo abordar la situación para IE8 (de hecho, descubro que solo está sucediendo en IE8), elimine esto si usarlo:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

y esta línea en el código:

Response.ClearHeaders(); 
Response.AddHeader("Cache-Control", " no-store, no-cache "); 

Gracias al autor:

http://www.asprangers.com/post/2012/01/24/Stream-rendering-failing-for-PDF-Excel-Docs-after-MS11-100-patch-from-Aspx-pages.aspx


acaba de encontrar esto, podría ayudar también;

Cuidado con el método ASP.NET SetCacheability

HttpCacheability enumeración de MSDN:

NoCache: nadie puede almacenar en caché la página.

Privado: solo los navegadores pueden almacenarlo en caché (pero no servidores proxy compartidos).Este es el valor por defecto

Pública: todo el mundo puede almacenar en caché la página, incluidos los proxies

servidor: páginas se almacenan sólo en el servidor (como el NoCache, por lo que los navegadores no hacen caché de la página)

ServerAndNoCache: servidor y NoCache ... el mismo que el servidor

ServerAndPrivate: servidor y Pr ivate ... lo mismo que Privada

http://codeclimber.net.nz/archive/2007/04/01/Beware-the-ASP.NET-SetCacheability-method.aspx

Cuestiones relacionadas