需要帮助一些IIS7 web.config压缩设置

我正在尝试在我的web.config文件中configuration我的IIS7压缩设置。 我试图启用HTTP 1.0请求是gzip

MSDN 在这里有关于它的所有信息。

是否有可能在我自己的网站的web.config文件中有这个configuration信息? 或者我需要将它设置在应用程序级别? 目前,我有我的web.config中的代码…

<system.webServer> <urlCompression doDynamicCompression="true" dynamicCompressionBeforeCache="true" /> <httpCompression cacheControlHeader="max-age=86400" noCompressionForHttp10="False" noCompressionForProxies="False" sendCacheHeaders="true" /> ... other stuff snipped ... </system.webServer> 

它不工作:( HTTP 1.1请求得到压缩,只是不是1.0。

上面的MSDN页面说,它可以用在: –

  • Machine.config中
  • 对ApplicationHost.config
  • 根应用程序Web.config
  • 应用程序Web.config
  • 目录Web.config

那么,我们可以在每个网站的基础上,以编程方式在web.config文件中设置这些设置吗? (这是一个应用程序Web.config文件…)我做错了什么?

欢呼:)

编辑:我被问到如何知道HTTP1.0没有得到压缩。 我正在使用失败的请求追踪规则,该规则会报告:

 DYNAMIC_COMPRESSION_START DYNAMIC_COMPRESSION_NOT_SUCESS Reason: 3 Reason: NO_COMPRESSION_10 DYNAMIC_COMPRESSION_END 

密切关注IIS 7.x web.config设置的事实

 noCompressionForProxies="false" 

在web.config级别没有荣誉。 它必须在C:\ Windows \ System32 \ inetsrv \ config \ ApplicationHost.config中设置,如下所示:

 <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="False"> 

确保在更改设置后执行IIS重置。

如果客户端的Web请求具有HTTP“Via”头,则确定请求来自IIS的代理,如下所示:

 Via: 1.1 foo 

经过相当一段时间的研究之后,它在应用程序级别被默认locking。 因此,它需要被“解锁”。 这可以通过命令行或通过(额外下载)iis7pipe理工具来实现。

例如。 appcmd set config -section:urlCompression /doDynamicCompression:true

Refrences:

  • IIS7中对压缩的更改
  • dynamic压缩HowTo

你如何testingHTTP1.0请求没有被压缩? 可能是因为你使用的客户端没有告诉服务器它可以接受压缩的响应吗?

如果您可以看到客户端发送的头文件(由testing客户端本身提供,如果您正在Firefox中testing,使用Firebug或类似工具(如果您在IE中进行testing,或者使用外部工具嗅探stream量),则应该使用Firebird或IEHTTPHeaders看到类似的东西

 Accept-Encoding: compress, gzip, deflate 

在那里的某个地方。 如果客户端不通知服务器它可以接受一个压缩响应,那么服务器将不会发送一个,不pipe你有什么其他的服务器端设置。

另一个问题可能是如果你正在通过一个代理服务器进行testing,这个服务器就是这样的。 在这种情况下,noCompressionForProxies设置可能会优先,并阻止压缩响应的可能性。

有一点需要注意的是,发送HTTP1.0请求的一些客户端和代理服务器(通常是较旧的软件)如果得到一个响应,将不能正确处理压缩的响应,所以如果确实启用了对HTTP1.0请求的响应压缩,在所有客户端/用户使用的客户端/代理软件中testing您的站点/应用程序。 如果你可以保证你的目标受众将使用某些软件(例如,该应用程序仅适用于内部公司networking),但这样做不是一个问题,但是否则有很多组合来testing这是为什么大多数服务器都禁用压缩1.0请求完全。

我在GoDaddy Windows Shared Hosting上成功启用了GZip。 请参阅此链接中所需的web.configconfiguration:

http://jeeshenlee.wordpress.com/2010/08/01/how-to-gzip-on-asp-net-and-godaddy/