5

我想在我的网络服务器上禁用分块传输编码,以避免这个错误: http: //support.microsoft.com/kb/871205。不幸的是,我需要在 Win2k 上支持 IE6,所以他们无法安装补丁。

我找到了将 AspEnableChunkedEncoding 设置为 FALSE 的说明,但这似乎不能解决我的问题。我相信这是因为我们还使用 gzip 压缩,根据这篇文章 ( http://www.eggheadcafe.com/conversation.aspx?messageid=31045986&threadid=31045970 ) 需要分块编码才能压缩动态内容。因此,所有动态压缩的内容都被“分块”传输,因为它是由 gzip 过滤器压缩的,而不是 ASP.NET。

我知道 IIS 可以不分块地提供此内容,因为我尝试在请求中使用 http 1.0(不支持传输编码:分块),并且响应正确到达并被压缩。

如何在使用 ScriptManager 时禁用分块编码,这需要动态压缩生成的“.axd”文件?

4

1 回答 1

1

由于您无法更改 IIS 中 GZip 压缩的行为或让您的客户端升级到新操作系统,为什么不针对特定用户代理字符串有条件地关闭 GZip 压缩。

在 Apache 上,您可以使用 mod rewrite 来执行此操作(请参阅此处),其中包含以下几行:

RewriteEngine on

RewriteCond %{HTTP:User-Agent} MSIE\ [56]
RewriteCond %{HTTP:User-Agent} !SV1
RewriteCond %{REQUEST_URI} \.(css|js)$
RewriteHeader Accept-Encoding: .* $1

服务器故障线程表明您可以使用ISAPI Rewrite来使用相同的指令并获得相同的结果。看起来免费的“Lite”版本也支持这些指令,因此您不必购买任何许可证。

于 2010-12-03T19:09:44.200 回答