我正在更改现有的自托管 ASP.NET Web 应用程序以在 Windows Azure 中运行。我已经成功地将该应用程序部署到了一个 Web 角色,乍一看似乎一切正常。
但是,我很快开始注意到 Javascript 并没有像我期望的那样在许多页面上执行。进一步调查显示,许多页面未完全加载。我一直在使用 Firefox(显然更宽容)并且它呈现部分内容,而 IE 只是显示“无法显示页面”。
运行 fiddler 或 charles 我可以看到内容长度不匹配发生了协议违规(服务器将内容长度响应标头设置为一个值,但随后不返回完整内容。
实际返回的内容长度似乎有所不同,因此我无法找到指向响应长度上限或类似内容的链接。以下是来自 fiddler 的一些示例错误消息:
Fiddler 在会话 #27 中检测到协议违规。内容长度不匹配:响应头指示 26,716 字节,但服务器发送了 23,138 字节。
Fiddler 在会话 #47 中检测到协议违规。内容长度不匹配:响应头指示 54,444 字节,但服务器发送了 32,546 字节。
Fiddler 在会话 #80 中检测到协议违规。内容长度不匹配:响应头指示 27,152 字节,但服务器发送了 18,726 字节。
当使用 Azure 计算模拟器在本地运行或在原始内部部署应用程序中运行时,此行为不会在应用程序中发生 - 只有在部署到 Azure 本身时才会发生。
如果有帮助,Web 应用程序是在 .NET 3.5 SP1 下运行的 ASP.NET 2.0 应用程序。
关于可能导致此问题的任何想法?
我应该早点尝试这个,但在发布这个问题后,我想到了从公司网络外部访问 Azure 中的应用程序,并惊讶地发现我没有遇到上述任何问题。
因此,这将问题缩小为我们的公司网络问题,由于某种原因导致该域出现问题。我们的 IT 团队仍在调查根本原因,但我已经确认这似乎不是与 Azure 本身相关的问题。
感谢您的回复。