IIS 7 HttpCompression不起作用

时间:2010-12-12 12:49:34

标签: iis-7 compression

我正在使用以下web.config块在IIS7上启用静态和动态压缩,但它没有压缩响应。(通过Fiddler验证)

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
     <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
     <dynamicTypes>
           <add mimeType="text/css" enabled="true" />
           <add mimeType="message/*" enabled="true" />
           <add mimeType="application/x-javascript" enabled="true" />
           <add mimeType="*/*" enabled="true" />
     </dynamicTypes>
     <staticTypes>
           <add mimeType="text/css" enabled="true" />
           <add mimeType="text/javascript" enabled="true" />
           <add mimeType="message/*" enabled="true" />
           <add mimeType="application/x-javascript" enabled="true" />
           <add mimeType="*/*" enabled="true" />
     </staticTypes>
</httpCompression>
 <staticContent>
    <remove fileExtension=".js" />
    <mimeMap fileExtension=".js" mimeType="application/x-javascript" />
</staticContent>

但它没有做任何压缩。我还检查过服务器是否安装了静态/动态压缩。还试过这个how-can-i-get-gzip-compression-in-iis7-working但不适合我。任何人都可以帮忙解决新事物吗?

2 个答案:

答案 0 :(得分:2)

我无法通过关注StackOverflow上的建议片段来解决问题。这就是我管理它的方式。

首先,确保将Dynamic Compression安装为Web角色的一项功能。通常,如果未安装模块,则会在IIS管理器中收到警告,但如果您手动设置了web.config,则不会发出警告,因为它会欺骗IIS UI逻辑。

然后我删除了所有web.config内容(如您的问题)并通过IIS管理器进行设置。我这样做是因为在MSDN上,一条容易错过的评论说:

  

您还可以为MIME类型添加通配符条目。但是,你可以   仅为Web服务器级别设置MIME类型。例如,要启用   首先是默认网站的所有MIME类型的静态压缩   为服务器级别的MIME类型添加通配符条目,然后   为默认网站启用静态压缩。

专注于:

  

但是,您只能为Web服务器级别设置MIME类型。

所以我不确定所有这些过滤器和东西是否真的在web.config中工作。就个人而言,它不适合我 - 即没有Content-Encoding: gzip标题。

在我全力以赴后,我不得不使用IIS管理器,在IIS:压缩下,确保它设置在服务器级别,然后对于网站,我不得不删除勾选,应用它,再次勾选它重新申请。

我最后在web.config中只有<urlCompression doDynamicCompression="true" />,这有点奇怪,因为我不关心压缩URL。

无论。我现在在我的网站的响应标题中有Content-Encoding: gzip - 所以我认为它正在工作。

答案 1 :(得分:1)

你能否启用失败的请求跟踪,它应该包含有关可能发生的事情的信息,它通常属于几个桶,1)生成压缩文件的权限,2)文件太小而不需要压缩,3)文件经常不够,所以它没有被压缩,4)mimetype问题

http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/