Pregunta

Tengo un sitio web sencillo con dos páginas. Una muestra una lista de archivos, y el otro corrientes de un archivo cuando se hace clic en la lista. Todo estaba bien en la producción de 6 meses, pero ahora tengo que mover el sitio a Windows 2008 / IIS7. Lo tengo todo trabajando, pero los archivos no se abre correctamente (en Firefox) porque mi encabezado de tipo de contenido está siendo ignorada. En el sitio de producción (IIS6) los encabezados se (utilizando Fiddler):

HTTP/1.1 200 OK
Date: Tue, 09 Feb 2010 16:00:51 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Content-Disposition: attachment; filename="myfile__foo.pdf"
Content-Length: 236841
Cache-Control: no-cache, no-store
Pragma: no-cache
Expires: -1
Content-Type: application/octet-stream

pero en el servidor IIS7 prueba de recibo:

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 236841
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
Content-Disposition: attachment; filename="myfile__foo.pdf"

El violinista también informa de una violación del protocolo y dice "Content-length desajuste:. Encabezado de respuesta afirmó 236841 bytes, pero el servidor envía 238378 bytes"

Mi código es el siguiente:

            Response.Clear();
            Response.AddHeader("Content-Disposition", "attachment; filename=\"" + doc.DisplayFilename + "." + doc.FileExtension + "\"");
            Response.AddHeader("Content-Length", file.Length.ToString());
            Response.ContentType = "application/octet-stream";
            Response.TransmitFile(file.FullName);
            Response.End();

He estado tratando de solucionar este problema durante un par de días. No estoy familiarizado con IIS7 y he tenido problemas para encontrar dónde cambiar varios ajustes. Me las arreglé para averiguar acerca de los dos modos de canalización administrada y se fijaron algunas otras cuestiones por el cambio a Classic .NET AppPool (Integrated estaba lanzando todo tipo de errores durante la transmisión del archivo).

¿Hay alguna manera de saber IIS7 para no sobrescribir mi encabezado ContentType, si eso es lo que está sucediendo?

¿Fue útil?

Solución

No tiene HttpModules modificación de la petición / respuesta? Son los archivos web.config exactamente lo mismo?

¿Dónde están estos bytes adicionales 2K procedentes de? ¿Qué hay en ellos?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top