首页 新闻 搜索 专区 学院

太奇怪了!IIS动态压缩竟然失效了

1
悬赏园豆:100 [已关闭问题] 关闭于 2012-04-16 15:31

这个问题是在 feed.cnblogs.com 中遇到的,比如博客园首页的RSS是 http://feed.cnblogs.com/blog/sitehome/rss, 用Firefox打开,用Firebug查看:

如上图,响应头中没有出现Content-Encoding: gzip,说明没有被压缩。

如果访问:http://feed.cnblogs.com/opml.xml(静态文件) ,Firebug中的显示如下:

也就是说静态有效,动态压缩失效。

IIS的配置 - C:\Windows\System32\inetsrv\config\applicationHost.config

1. 确实启用了Dynamic Compress

<urlCompression doDynamicCompression="true" />

2. 也启用了 appliation/xml MIME 类型的动态压缩

<dynamicTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/*" enabled="true" />
    <add mimeType="*/*" enabled="false" />
</dynamicTypes>

奇怪的地方有三个:

1. 同一台服务器,其他站点动态压缩都正常;

2. 同样的程序在其他服务器跑,动态压缩正常;

3. 其他服务器跑的IIS配置与这台一样。

昨天晚上被这个折腾得不想睡觉,今天一定要搞定它! 

IIS
dudu的主页 dudu | 高人七级 | 园豆:37154
提问于:2012-04-16 10:35
< >
分享
所有回答(5)
0

在请求的 http headers 中必须有下列标头:

Accept: text/html, application/xhtml+xml, */*   // */* 是用于接收压缩数据的设置,如果不设置,IIS会返回未压缩格式数据。
Accept-Encoding: gzip, deflate

Launcher | 园豆:45045 (高人七级) | 2012-04-16 10:59

请求头正常

支持(0) 反对(0) dudu | 园豆:37154 (高人七级) | 2012-04-16 11:00

@dudu: 

 

<add mimeType="*/*" enabled="false" /> 修改为 true 试试。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2012-04-16 11:09

@程序猿.码农: 试过了,解决不了问题

支持(0) 反对(0) dudu | 园豆:37154 (高人七级) | 2012-04-16 11:12

@dudu: 

要不你通过IIS管理器,看下对应站点的“动态压缩”是否勾选上。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2012-04-16 11:20

@程序猿.码农: 勾选上了

支持(0) 反对(0) dudu | 园豆:37154 (高人七级) | 2012-04-16 11:30

@dudu: 除了rss这个,还有没有别的启用动态压缩,且成功的服务?

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2012-04-16 11:44

@dudu: 会不会和服务器的Cache-Control设置有关。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2012-04-16 12:44
0

关注一下!

ChatinCode | 园豆:2272 (老鸟四级) | 2012-04-16 12:03
0

关注。。。

KivenRo | 园豆:1722 (小虾三级) | 2012-04-16 12:56
0

你是不是用了MVC?如果是,可参照此文章解决问题:http://www.cnblogs.com/zhaojingjing/archive/2011/01/20/1940357.html

royrandy | 园豆:202 (菜鸟二级) | 2012-04-16 13:49

不是MVC

支持(0) 反对(0) dudu | 园豆:37154 (高人七级) | 2012-04-16 14:04
0

是被 EditPlus/Notepad++ 欺骗了,虽然修改/保存了,重要打开applicationHost.config也看到修改后的内容,但实际文件并没有被修改。

用记事本打开 applicationHost.config 还是原来的内容,用记事本修改/保存后重启IIS,并重建这个IIS站点,解决就解决了。

dudu | 园豆:37154 (高人七级) | 2012-04-16 15:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册