Включить ошибку сжатия GZIP: STATIC_COMPRESSION_NOT_SUCCESS - PullRequest
4 голосов
/ 03 ноября 2010

Я пытаюсь включить сжатие GZIP на IIS 7.5.

Я думаю, что все настройки в порядке.

В ApplicationHost.config у меня есть этот раздел httpCompression:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" minFileSizeForComp="0">
       <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
       <staticTypes>
             <add mimeType="text/*" enabled="true" />
             <add mimeType="message/*" enabled="true" />
             <add mimeType="application/x-javascript" enabled="true" />
             <add mimeType="application/atom+xml" enabled="true" />
             <add mimeType="application/xaml+xml" enabled="true" />
       </staticTypes>
</httpCompression>

И этот раздел urlCompression:

<urlCompression dostaticcompression="true" />

и вот результат трассировки невыполненного запроса:

  STATIC_COMPRESSION_NOT_SUCCESS     
  Reason="UNKNOWN_ERROR"

Ответы [ 3 ]

3 голосов
/ 22 июля 2015

У меня работают следующие конфигурации.Просто замените раздел httpCompression в applicationHost.config на приведенный ниже и перезапустите IIS.Вот и все !!!

  <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"
    staticCompressionDisableCpuUsage="95" staticCompressionEnableCpuUsage="60"
    dynamicCompressionDisableCpuUsage="95" dynamicCompressionEnableCpuUsage="50">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" />
    <dynamicTypes>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/x-javascript" enabled="true" />
      <add mimeType="*/*" enabled="false" />
      <add mimeType="application/json" enabled="true" />
      <add mimeType="application/json; charset=utf-8" enabled="true" />
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/x-javascript" enabled="true" />
      <add mimeType="application/atom+xml" enabled="true" />
      <add mimeType="application/xaml+xml" enabled="true" />
      <add mimeType="application/json" enabled="true" />
      <add mimeType="application/json; charset=utf-8" enabled="true" />
      <add mimeType="*/*" enabled="false" />
    </staticTypes>
  </httpCompression>

После настройки я получил следующие заголовки в ответ, которые указывают, что данные сжимаются с использованием сжатия gzip

Cache-Control → no-cache
Content-Encoding → gzip
Content-Length → 4202
Content-Type → application/json; charset=utf-8
Date → Wed, 22 Jul 2015 07:40:17 GMT
Expires → -1
Pragma → no-cache
Vary → Accept-Encoding
X-Powered-By → ASP.NET 

Приведенная выше конфигурация предназначена для всейIIS.Если вы хотите настроить это для отдельного веб-сайта, замените

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />

на

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

в applicationHost.config и вместо замены раздела httpCompression в applicationHost.config добавьте его вТег system.webServer в web.config вашего веб-сайта

Также убедитесь, что вы указали правильный тип MIME для своих данных.В моем случае это было в JSON, поэтому я использовал следующие конфигурации

<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
0 голосов
/ 12 апреля 2013

Я предлагаю проверить, что учетная запись пользователя пула приложений, если она у вас есть, имеет определенные полные права на каталог "%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"

0 голосов
/ 29 апреля 2011

Если я посмотрю на web.config проекта html5-шаблон , они используют этот метод:

<!-- 
            GZip static file content.  Overrides the server default which only compresses static files over 2700 bytes
        -->
        <httpCompression directory="%SystemDrive%\websites\_compressed" minFileSizeForComp="1024">
            <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
            <staticTypes>
                <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>

https://github.com/paulirish/html5-boilerplate-server-configs/blob/master/web.config

Возможно, это нулевое значениевы указали или путь к каталогу, который вы используете.

См. также

...