Сжатие GZip на IIS 7 НЕ работает (COMPRESSION_DISABLED) - как я могу это исправить? - PullRequest
5 голосов
/ 03 мая 2011

Не удается заставить gzip работать с моим веб-сервером IIS7.

У меня есть Windows 2008 64bit running IIS 7 (.NET Web app). Я включил Gzip через модуль IIS, и у меня есть следующая строка в моем webconfig:

urlCompression doStaticCompression="true" doDynamicCompression="true" />

Каждый раз, когда я проверяю FailedReqLogfiles, это то, что я получаю:

DYNAMIC_COMPRESSION_START 
-DYNAMIC_COMPRESSION_NOT_SUCCESS 
Reason 2 
Reason COMPRESSION_DISABLED

Есть идеи?

Заранее спасибо

Ответы [ 3 ]

8 голосов
/ 03 мая 2011

Приятель, мне понадобились целые годы, чтобы заставить это работать некоторое время назад.

Пока что вы правильно сделали, попросив IIS7 использовать сжатие GZIP, добавив правильный элемент в

<system.webServer>
    <urlCompression doDynamicCompression="true" dynamicCompressionBeforeCache="true" />
 ....
</system.webServer>

ПРИМЕЧАНИЕ. System.webServer предназначен для настроек IIS7 +.

Теперь .. кикер таков: по умолчанию IIS7 ОТКЛЮЧЕНО Сжатие gzip (для всех веб-сайтов на этом сервере) независимо от того, попросил ли пользователь включить его через web.config. Зачем? Представьте себе массивного веб-хостера (например, Discount ASP.NET и т. Д.), Который позволяет людям включать сжатие GZIP ... и сотни сайтов делают это ... и ЦП сервера начинает (возможно) стремительно расти.

Таким образом, если только администратор сервера не изменит настройки для urlCompression на уровне сервера (также как в файле application.config) .. тогда IIS7 будет игнорировать этот параметр.

Итак - давайте исправим это (при условии, что у вас есть доступ к файлу application.config).

Сначала запустите IIS и нажмите на имя главного сервера , затем нажмите Редактор конфигурации . Это позволяет нам изменять настройки для ВСЕГО сервера (app.config stuff).

enter image description here

Теперь выберите элемент system.webServer, а затем выберите urlCompression.

enter image description here

Сейчас -> обратите внимание, как вы можете теперь РАЗБЛОКИРОВАТЬ раздел или атрибут ? Я просто разблокирую весь этот раздел. На моей картинке ниже написано LOCK ... потому что я уже разблокировал ее . Так что разблокируйте этот раздел и попробуйте. Если это все еще не работает, попробуйте перезапустить службу WWW.

enter image description here

и скажите мне, если это начнет работать для вас:)

2 голосов
/ 29 июня 2011

OOOK! Следующий тег отсутствует в applicationHost.config ... aargh!

<httpCompression directory="D:\gzip" minFileSizeForComp="256">

После добавления, соответственно, это сработало.

 <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
            <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
0 голосов
/ 24 апреля 2012

Я включил сжатие Gzip, просто используя <urlCompression doDynamicCompression="true" doStaticCompression="true" /> между <system.webServer> в файле web.config.Кстати, ваше предложение также полезно и полезно.

...