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

标签 iis internet-explorer-6 gzip scriptmanager transfer-encoding

我想在我的 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(不支持传输编码:分块),并且响应正确到达并被压缩。

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

最佳答案

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

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

RewriteEngine on

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

server fault thread表示可以使用 ISAPI Rewrite使用相同的指令并获得相同的结果。免费的“Lite”版本似乎也支持这些指令,因此您无需购买任何许可证。

关于iis - 使用压缩动态内容时如何禁用分块传输编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894499/

相关文章:

c# - 文件上传,远程服务器返回错误 : (413) Request Entity Too Large

windows - 从 XP SP3 安装中卸载 IE8?

c# - 我真的被迫 ReadToEnd() 读取 Ionic.Zlib.GZipStream 的 StreamReader 吗?

IIS TLS 证书 - Chrome 说我们正在使用 "obsolete cryptography"

c# - 跨域 Cookies 问题 (ASP.NET)

asp.net - IIS WebSocket Ping pong 在不空闲时发送

javascript - IE6和IE7 ExtJS gridPanel标题消失

html - 如何在 IE6 中防止 div 调整大小?

c - 使用 zlib 库进行 gzip 解压

Java解压缩字节数组