Tengo IIS 7.5 configurado para usar compresión gzip tanto en contenido estático como dinámico. Al inspeccionar la carpeta "Archivos comprimidos temporales de IIS", verifiqué que efectivamente está comprimiendo todos los tipos MIME estáticos que he definido en mi configuración. También forcé un seguimiento de solicitud fallida y descubrí que la compresión se ejecuta correctamente, sin errores, cuando llega la solicitud (tanto estática como dinámica).
Sin embargo, la respuesta que IIS envía al navegador no está comprimida. El tamaño de la respuesta es el mismo y no hay ningún encabezado "Contenido codificado: gzip" en la respuesta.
Mi configuración de IIS:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" minFileSizeForComp="1" noCompressionForHttp10="false" noCompressionForProxies="false">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/x-javascript; charset=utf-8" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/x-javascript; charset=utf-8" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
...
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
...
<serverRuntime frequentHitThreshold="1" />
Solicitud de muestra (el ejemplo es dinámico, pero lo mismo ocurre con los tipos estáticos también):
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Content-Length:0
Cookie:ASP.NET_SessionId=...
Host:...
Origin:...
Pragma:no-cache
Referer:...
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
Respuesta de muestra:
Cache-Control:private
Content-Type:application/json; charset=utf-8
Date:Tue, 29 Sep 2015 21:37:28 GMT
Server:Microsoft-IIS/7.5
Set-Cookie:.ASPXAUTH=...
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:5.0
X-Powered-By:ASP.NET
Nuevamente, verifiqué que se está comprimiendo correctamente, simplemente no envía los datos comprimidos en la respuesta por algún motivo.