2012-09-28 62 views
7

En ASP.NET MVC he utilizado el archivo web.config para habilitar y configurar los ajustes de compresión IIS7.5 gzip. Pero comprimen ajustes de nivel parecen tener ningún efecto en absoluto:Configuración del nivel de compresión IIS7 gzip

<scheme name="gzip" dynamicCompressionLevel="9" staticCompressionLevel="9"/> 

Con el nivel de compresión = 0 para ambas configuraciones, mi página de inicio se gzipped a 9.290 bytes (de 39.623)

con el Nivel = 9 compresión para ambas configuraciones, mi página de inicio está en formato gzip en 9.290 bytes (de 39.623)

(usando violinista para comprobar los tamaños, sin comprimir/zip)

no hay diferencia en la cantidad de compresión - ¿por qué? Esto ocurre en mi máquina de desarrollo local - Windows 7. Todavía no lo he probado en nuestro servidor web Win 2008.

ajustes de compresión completas en web.config:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> 
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="10" staticCompressionLevel="10"/> 
    <dynamicTypes> 
    <add mimeType="text/*" enabled="true"/> 
    <add mimeType="message/*" enabled="true"/> 
    <add mimeType="application/javascript" enabled="true"/> 
    <add mimeType="application/x-javascript" enabled="true"/> 
    <add mimeType="application/xml" enabled="true"/> 
    <add mimeType="*/*" enabled="false"/> 
    </dynamicTypes> 
    <staticTypes> 
    <add mimeType="text/*" enabled="true"/> 
    <add mimeType="message/*" enabled="true"/> 
    <add mimeType="application/javascript" enabled="true"/> 
    <add mimeType="application/x-javascript" enabled="true"/> 
    <add mimeType="application/xml" enabled="true"/> 
    <add mimeType="*/*" enabled="false"/> 
    </staticTypes> 
</httpCompression> 
<urlCompression doStaticCompression="true" doDynamicCompression="true"/> 

EDIT: al parecer el más alto nivel es 9. Esta página dice que es 10, pero debe ser incorrecta http://www.iis.net/configreference/system.webserver/httpcompression/scheme. El problema sigue siendo el mismo cuando se utiliza el nivel 9

Respuesta

2

favor Asegúrate de haber dynamic compression installed

Siguiente lo podría hacer en anulando algunos compression defaultsdynamicCompressionDisableCpuUsage se establece en el 90% y la compresión no entrará en funcionamiento otra vez hasta pasar por debajo de dynamicCompressionEnableCpuUsage que por defecto es 50%. Sugeriría plantear lo último.

Failed request tracing también se recomienda en severalplaces en SO para este tipo de problema que podría ayudarlo a detectar el problema.

Hay algunas respuestas detalladas a las siguientes preguntas

How can I get gzip compression in IIS7 working?

Compression is not working

ACTUALIZACIÓN:

El ajuste se puede bloquear a nivel de aplicación y lo que debe tratar de ejecutar el siguiente :

appcmd set config -section:urlCompression /doDynamicCompression:true 

Si todavía es un problema, podría valer la pena modificar minFileSizeForComp cuyo valor predeterminado es increased with later IIS versions.

Como por comentario, intente simplemente hacer dinámico para comenzar y dejar estático mientras intenta clavar esto.

+0

Lo siento, no pude volver a esta pregunta a pesar de que me ha estado molestando. La compresión dinámica está instalada y funcionando. Pero cambiar el nivel de compresión no es –

+0

@JK ¿ha intentado establecer la compresión estática en falso y simplemente hacer dinámica? He actualizado la respuesta con otras sugerencias – dove

1

Si su página de inicio no se genera dinámicamente, el dynamicCompressionLevel no tendrá ningún efecto.

Como la compresión estática está habilitada de manera predeterminada, probablemente ya haya una versión comprimida de la página de inicio en caché. Puede intentar simplemente modificar su página de inicio (por ejemplo, simplemente cambie un carácter). Debería volver a comprimir con la nueva configuración.

Es posible que la compresión estática predeterminada ya esté en el nivel 9.Si no ve ningún cambio, también puede probar reduciendo el nivel estático a 1 para ver si hay alguna diferencia.

Es posible que necesite para proporcionar la DLL:

<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" /> 
+0

Parece que el módulo de compresión dinámica no está limitado a contenido dinámico. En mis propias pruebas, comprime contenido estático siempre que coincida con su lista de tipos de mime y no esté ya comprimido. Debe entenderse como un "módulo de compresión dinámica", que se activa en cada solicitud. Mientras que el módulo estático se dispara un poco como un proceso en segundo plano que trabaja en los archivos, y comienza a mostrar el resultado comprimido solo una vez que los tiene en su caché. –

0

¿Su tubería MVC incluyen un filtro de compresión?

En caso afirmativo, tendrá prioridad sobre el módulo de compresión dinámica IIS. La configuración de este módulo no tendrá efecto en su página MVC ya que el módulo de compresión dinámica IIS no intentará comprimir la salida que ya está comprimida en http.

Cuestiones relacionadas