静的コンテンツと動的コンテンツの両方で gzip 圧縮を使用するように IIS 7.5 を設定しました。「IIS 一時圧縮ファイル」フォルダーを調べると、構成で定義したすべての静的 MIME タイプが実際に圧縮されていることがわかりました。また、失敗した要求トレースを強制実行したところ、要求 (静的と動的の両方) が到着したときに、エラーなしで圧縮が正常に実行されていることがわかりました。
ただし、IIS がブラウザに返す応答は圧縮されていません。応答のサイズは同じで、応答には「Content-Encoded: gzip」ヘッダーはありません。
私の 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" />
サンプルリクエスト (例は動的ですが、静的タイプでも同様の処理が行われます):
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
サンプル応答:
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
再度、圧縮が正常に行われていることを確認しましたが、何らかの理由で応答で圧縮されたデータが送信されていないだけです。