即使允许在applicationHost.config中,gzip压缩也不起作用

我想为IIS7.5上运行ASP.NET4.5的站点启用gzip压缩,但无法压缩。

我在共享主机,所以我不能直接在IIS中设置。

的applicationHost.config

我将其从Deny更改为Allow (我在这里读到,我不应该更改allowDefinition设置:如何在IIS 7中使用appcmd更改allowDefinition部分属性?)

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

我的网站的web.config

<httpCompression directory="%SystemDrive%inetpubtempIIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%system32inetsrvgzip.dll"/>
  <dynamicTypes>
    <add mimeType="text/*" enabled="true"/>
    <add mimeType="message/*" enabled="true"/>
    <add mimeType="application/javascript" enabled="true"/>
    <add mimeType="application/x-javascript" enabled="true"/>
    <add mimeType="application/javascript; charset=utf-8" 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="application/x-javascript" enabled="true"/>
    <add mimeType="application/javascript; charset=utf-8" enabled="true"/>
    <add mimeType="*/*" enabled="false"/>
  </staticTypes>
</httpCompression>    

作为上述的替代方案,我也尝试将其添加到我的web.config中:

<configuration>
   <system.webServer>
      <urlCompression doStaticCompression="true" doDynamicCompression="false" />
   </system.webServer>
</configuration>

我在Windows 2008服务器管理器中看到安装了静态内容压缩,但Dynamic不是。

然后,当我去我的站点和模块压缩的IIS,我现在看到, Enable Dynamic content compression已启用(即使显然未安装),但变灰,并检查静态内容压缩。

尽管如此,尽管启用了静态和动态内容压缩,但我看不到使用Fiddler进行压缩的情况。

Fiddler中没有启用Decode按钮。 我还检查了http://www.whatsmyip.org/http-compression-test/和http://www.gidnetwork.com/tools/gzip-test.php

但无论我做什么,当我与Fiddler进行检查时,我都看不到gzip压缩: 在这里输入图像描述

我已经检查过这些帖子:

http://blog.arvixe.com/how-to-enable-gzip-on-iis7/

启用IIS7 gzip


IIS上的压缩有点不可靠,因为它不会立即执行。 IIS不会压缩内容,直到它被频繁击中,所以它可能会出现内容未被压缩时,它实际上最终会被击中几次后。

此外请确保您列出的MIME类型与您从代码传回的内容类型完全匹配。

例如,对于JavaScript:

<httpCompression directory="%SystemDrive%inetpubtempIIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%system32inetsrvgzip.dll" staticCompressionLevel="9" />
  <dynamicTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/x-javascript" enabled="true" />
    <add mimeType="application/javascript" enabled="true" />
    <add mimeType="application/javascript; charset=utf-8" enabled="true" />
    <add mimeType="application/json" enabled="true" />
    <add mimeType="application/json; charset=utf-8" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </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="*/*" enabled="false" />
  </staticTypes>
</httpCompression>

可能是必需的。

以下是几年前我撰写的一篇博文中的更多信息:http://weblog.west-wind.com/posts/2011/May/05/Builtin-GZipDeflate-Compression-on-IIS-7x

另一个讨论与你的听起来相似的问题(查看评论):http://weblog.west-wind.com/posts/2007/Jun/22/IIS-7-and-JavaScript-Compression-not木材加工洽

链接地址: http://www.djcxy.com/p/18555.html

上一篇: gzip compression not working even though allowed in applicationHost.config

下一篇: Is it possible to model jQuery.fn.extend using TypeScript