Я добавил запись web.config, чтобы включить сжатие gzip на основе этого ответа S/O Включить IIS7 gzip.
Затем я проверил окно Chrome Developer при загрузке страницы ASPX и увидел заголовок в ответе:
Cache-Control:private
Content-Encoding:gzip
Content-Length:3669
Content-Type:text/html; charset=utf-8
Date:Wed, 04 Mar 2015 00:46:05 GMT
Server:Microsoft-IIS/7.5
Vary:Accept-Encoding
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
Значит, это "работает", правильно? Но при поиске этого заголовка при вызове Web API его нет:
Cache-Control:no-cache
Content-Length:551
Content-Type:application/json; charset=utf-8
Date:Wed, 04 Mar 2015 00:53:05 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
Я пробовал все виды различных конфигураций (начиная с того, который был рекомендован в связанном ответе S/O выше). Наконец, в отчаянии я поставил его на это, и я думал, что он попытается сжать все запросы (все, кроме */* закомментировано):
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="*/*" enabled="true"/>
<!--<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="application/json" enabled="true"/>-->
<!--<add mimeType="*/*" enabled="false"/> -->
</dynamicTypes>
<staticTypes>
<add mimeType="*/*" enabled="true"/>
<!--<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="application/json" enabled="true"/>-->
<!-- add mimeType="*/*" enabled="false"/>-->
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
Что может помешать GZIP применяться к моим методам веб-API?
Обновление
С тех пор я попробовал как пакет сжатия NuGet Web API, так и редактирование applicationHost.config как в IIS Express 8.0 (Visual Studio) и локально установленный IIS 7.5. Все дали одинаковые результаты: запросы на другие типы mime, такие как text/* work, но application/json отказывается быть gzipped.