设置IIS7 gzip压缩级别

时间:2012-09-28 03:28:57

标签: asp.net-mvc iis iis-7 compression gzip

在ASP.NET MVC中,我使用了web.config来启用和配置IIS7.5 gzip压缩设置。但是他们压缩级别设置似乎根本没有效果:

<scheme name="gzip" dynamicCompressionLevel="9" staticCompressionLevel="9"/>

对于这两个设置的压缩级别= 0,我的主页被压缩到9,290字节(从39,623)

对于这两个设置的压缩级别= 9,我的主页被压缩为9,290字节(从39,623)

(使用fiddler检查压缩/未压缩的大小)

压缩量没有区别 - 为什么?这发生在我的本地开发机器上 - Windows 7.我还没有在我们的Win 2008 Web服务器上尝试过它。

web.config中的完全压缩设置:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="10" staticCompressionLevel="10"/>
  <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/xml" 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/xml" enabled="true"/>
    <add mimeType="*/*" enabled="false"/>
  </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>

编辑:显然最高级别为9.此页面显示为10但必须不正确http://www.iis.net/configreference/system.webserver/httpcompression/scheme。使用9级

时问题仍然存在

3 个答案:

答案 0 :(得分:2)

请仔细检查dynamic compression installed

接下来,您可以查看覆盖某些compression defaults dynamicCompressionDisableCpuUsage设置为90%,压缩不会再次启动,直到您进入dynamicCompressionEnableCpuUsage,默认为50%。我建议提高后者。

对于这类可能有助于您发现问题的问题,我们也建议Failed request tracing several使用{p> places

以下问题有一些详细解答

How can I get gzip compression in IIS7 working?

Compression is not working

更新:

设置可能会在应用程序级别被锁定,因此您应该尝试运行以下命令:

appcmd set config -section:urlCompression /doDynamicCompression:true

如果仍然存在问题,可能需要调整minFileSizeForComp,其默认值为increased with later IIS versions

根据评论,也可以尝试动态启动并在试图解决这个问题时保持静态。

答案 1 :(得分:1)

如果您的主页未动态生成,则dynamicCompressionLevel将无效。

由于默认情况下启用了静态压缩,因此可能已经缓存了主页的压缩版本。您可以尝试简单地修改主页(例如,只需更改一个字符)。然后应该使用新设置重新压缩。

默认静态压缩可能已经达到9级。如果您没有看到任何更改,您还可以尝试静态级别降低到1以查看是否存在差异。

您可能需要提供DLL:

<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" />

答案 2 :(得分:0)

您的MVC管道是否包含压缩过滤器?

如果是,它将优先于IIS动态压缩模块。此模块上的设置对MVC页面没有影响,因为IIS动态压缩模块不会尝试压缩已经过http压缩的输出。