如何在使用压缩动态内容时禁用分块传输编码?

Noa*_*son 5 iis gzip scriptmanager transfer-encoding internet-explorer-6

我想在我的Web服务器上禁用分块传输编码,以避免此错误: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(它不支持transfer-encoding:chunked),并且响应正确到达并压缩.

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

lam*_*cck 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
Run Code Online (Sandbox Code Playgroud)

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