【发布时间】:2009-11-19 07:14:03
【问题描述】:
我有一个在 IIS 7 上运行的 asp.net mvc 应用程序。我遇到的问题是,根据客户端的不同,响应可能会被接收(通过提琴手看到)为“分块传输编码。我不能明白为什么这只发生在我的一些客户身上(即使两台计算机在同一个网络上使用相同的浏览器(IE 8)而不是每个人,反之亦然?
谁能给我解释一下?
很抱歉更新晚了,但问题原来是用户如何到达服务器的结果。如果用户通过 vpn 连接连接到本地局域网,则将回避代理,否则将使用代理。这导致了两种不同的结果。
【问题讨论】:
-
为什么会出现这个问题?您似乎正在使用 MSIE8,它可以很好地处理分块和非分块响应。对于最终用户来说,响应看起来是一样的——在去分块之后,两个响应将是相同的。你有一些依赖于存在的块的功能吗?
-
不确定这是否是我们遇到的另一个问题的原因,即获得分块响应的客户端没有获得发布到 webbapplication 的某些 javascript 文件的最新版本。而且,我很好奇为什么会发生这种情况。在“相同”条件下,IIS 的结果不同,这似乎很奇怪。
-
我在压缩和分块相同的响应时遇到了一些问题(有点极端情况),也许这可能是个问题?
-
让我们在这里明确一点:您遇到了问题(文件过时),并且您已经注意到几乎可以肯定是不相关的怪癖(有时是分块,有时不是)。您应该将调查重点放在问题上,而不是怪癖上。当动态生成响应并且未启用输出缓冲时,响应会被分块。如果响应已被 IIS 缓冲,甚至缓存,则没有理由使用 Chunked Encoding,服务器将改为发送 content-length 标头。
-
是的,您可能是对的,但我发现服务器的响应(据我所知在相同条件下)不同,这很奇怪。如果我消除这些变量,我发现更容易找到真正的问题。
标签: asp.net-mvc iis-7 fiddler chunked-encoding