我们的(asp.net)系统是更大系统的一部分。它是通过这个更大的系统从javascript启动的,它执行window.open调用以打开一个新窗口。

(除此之外,验证数据等通过加密的查询字符串参数传递到我们的系统中)

当使用IE7进行测试时(遗憾的是组织已对此进行了标准化),浏览器将在使用我们的系统(浏览页面)一段时间后(其间歇性),开始不进行网络请求。按F5使其显示其加载动画,但实际上没有发生任何事情。)

你可以关闭我们的窗口,然后回到更大的系统(在它自己的窗口中),它仍然可以正常工作。如果您重新启动我们的系统,新窗口将打开,看起来像是加载,但没有请求(使用wireshark验证)。这些系统位于不同的子域中。

这是有趣的事情,如果我启动Fiddler,一切都开始正常。一旦我关闭Fiddler,它就会停止发出网络请求。

系统是一个非常html / javascript / ajax重系统(每页1MB +),但这不应该导致浏览器这样做。显然Firefox和Chrome完美运行:)

让它再次运行的唯一方法是关闭所有IE窗口,然后重新启动。

我已经禁用了代理服务器,启用了它,完成了我能想到的所有内容。

有人有任何想法吗?

<强>更新

我设法用小提琴手重现它。最初,当它工作时,我可以看到Fiddler中的所有请求。当它进入其“无请求正在制造”时模式(再次注意,没有任何变化,我只是浏览),我在Fiddler中看不到任何东西(即没有新请求,没有)。 fiddler记录的所有请求都已完成,因此没有打开的连接。

我们几乎在每台机器上都能看到这一点。浏览了大约15页后,就会开始发生这种情况。这可能是一些环境问题吗?我的测试机器是带有McAfee,IE7的vanilla XP安装。没有其他东西在运行,IE中也没有安装工具栏。

有帮助吗?

解决方案

尝试合并 http://www.enhanceie.com/dl/fixHTTPMax.reg提高你的HTTP连接限制,然后检查是否需要大约10倍才能遇到问题。

如果是这样,那么问题是你已经发现了泄漏HTTP连接的问题,然后你最终达到每服务器最大连接数限制。

其他提示

在IE中启用JavaScript调试并检查是否存在任何错误。

你使用小提琴自动代理设置让自己陷入困境。

当fiddler启动时,当fiddler关闭它时,它会修改IE的代理设置以指向fiddler,恢复原始代理设置。

如果fiddler看到现有的代理设置,它将使用它转发的请求中的那些设置。

在某些错误情况下,您可以不使用fiddler,但在IE设置中仍然存在fiddler代理修改。你最终可能会遇到这样的情况,即IE仅在Fiddler运行时有效。

重置IE的代理设置。

修改

否则最可能的原因是有尚未完成的未完成请求。有两个这样的并且在默认的IE配置中,所有其他请求将无限期地等待未完成的请求完成。解雇提琴手可以解决这个问题一段时间,因为请求不会直接进入服务器。你能用小提琴手重现这个问题吗?你是否在小提琴手中看到了出色的请求?

完成后,请确保在HTTP标头中设置 connect:close

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top