我们的(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中也没有安装工具栏。
答案 0 :(得分:3)
尝试将http://www.enhanceie.com/dl/fixHTTPMax.reg合并到您的HTTP连接限制,然后检查是否需要大约10倍才能遇到问题。
如果是这样,那么问题是你已经发现了泄漏HTTP连接的问题,然后你最终达到每服务器最大连接数限制。
答案 1 :(得分:1)
在IE中启用JavaScript调试并检查是否存在任何错误。
答案 2 :(得分:1)
你使用小提琴自动代理设置让自己陷入困境。
当fiddler启动时,当fiddler关闭它时,它会修改IE的代理设置以指向fiddler,恢复原始代理设置。
如果fiddler看到现有的代理设置,它将使用它转发的请求中的那些设置。
在某些错误情况下,您可以不使用fiddler,但在IE设置中仍然存在fiddler代理修改。你最终可能会遇到这样的情况,即IE仅在Fiddler运行时有效。
重置IE的代理设置。
修改强>
否则最可能的原因是有尚未完成的未完成请求。有两个这样的并且在默认的IE配置中,所有其他请求将无限期地等待未完成的请求完成。解雇提琴手可以解决这个问题一段时间,因为请求不会直接进入服务器。你能用小提琴手重现这个问题吗?你是否在小提琴手中看到了出色的请求?
答案 3 :(得分:0)
确保在完成后在HTTP标头中设置connect: close
。