Элемент HttpCompression в web.config не читается в IIS7.5 - PullRequest
8 голосов
/ 09 ноября 2011

Я пытаюсь переопределить элемент httpCompression в Web.config для сайта на IIS 7.5 под управлением Windows 7, но, похоже, он вообще не читается.

Чтобы проверить, яВведены typeos в элемент, но я даже не могу получить ошибку конфигурации.

Вот пример элемента httpCompression из Web.config

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <SCHEMEx name="deflate" dll="%Windir%\system32\inetsrv\gzip.dll" />
  <dynamicTypes>
    <add mimeType="text/*" enabled="false" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/x-javascript" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </dynamicTypes>
  <staticTUPES>
  </staticTUPES>
</httpCompression>

Когда яввести аналогичные ошибки в другом элементе (например, modules) Я получаю ошибку конфигурации, поэтому я знаю, что файл конфигурации читается.

Я разблокировал раздел в ApplicationHost.config:

appcmd unlock config /section:system.webserver/httpcompression

Но это не сработало, поэтому я изменил ApplicationHost.config вручную, так что теперь он читает:

...
<section name="httpCompression" overrideModeDefault="Allow" />
...

Что я действительно пытаюсь сделать, так это установить "deflate" в качестве единственной схемы сжатиядля одного из моих сайтов.

Ответы [ 2 ]

4 голосов
/ 04 февраля 2016

Для того, чтобы это работало, после разблокирования файла application.config вам также необходимо установить конкретную конфигурацию через командную строку.

1) Разблокировать httpCompression часть приложения.config:

C:\Windows\System32\inetsrv\appcmd.exe unlock config /section:system.webServer/httpCompression

2) Предположим, что вы хотите обрабатывать динамические запросы JSON (например, mimetype = application / json ), вам следует использовать эту команду:

C:\Windows\System32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json',enabled='True']" /commit:apphost

3) Если вы используете JSON-запросы, вам также может потребоваться обработать вариант charset = utf-8 , который по некоторым причинам является тем, что IIS возвращает вам в большинстве случаев:

C:\Windows\System32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json; charset=utf-8',enabled='True']" /commit:apphost
1 голос
/ 01 сентября 2014

Раньше у меня была немного похожая проблема, слишком давно, чтобы вспомнить подробно. Я думаю, что я прибег к внесению изменений непосредственно в ApplicationHost.config (% windir% \ system32 \ inetsrv \ config), но не идеальное решение.

Предположим, вы смотрели здесь http://www.iis.net/configreference/system.webserver/httpcompression - Вы пытались использовать элемент clear , как упомянуто в этом посте?

...