В нашем приложении есть несколько довольно продолжительных вызовов AJAX, некоторые из которых передают более 100 КБ данных по довольно медленной зашифрованной сети. Я хочу включить сжатие G-Zip на application/json
чтобы немного ускорить это. Однако у меня тяжелые времена! Во-первых, обратите внимание, что сервер определенно поддерживает это. application/javascript
и text/*
компресс просто отлично. Первое, что я попробовал, - это добавить в web.config
в <system.webServer>
раздел:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<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="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
Это не подействовало. Я даже включил "*/*"
на все, чтобы просто проверить.
Далее я откопал всесильный applicationHost.config
файл. Это было:
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
Что я изменил на:
<section name="httpCompression" allowDefinition="Everywhere" overrideModeDefault="Allow" />
По-прежнему никуда. Я сделал iisreset
просто чтобы убедиться, что новые настройки вступят в силу.
Наконец, я отредактировал собственно <httpCompression>
раздел в applicationHost.config
и вручную добавлен в:
<add mimeType="application/json" enabled="true" />
Что ж, это действительно сработало! Однако мне кажется, что модифицировать applicationHost.config
когда я бы предпочел просто включить это для одного веб-приложения. Что я делаю не так и почему не могу отменить это в web.config
? Спасибо!