8

好的,这是一个难题。我有一台Catalyst服务器,可以在Firefox 4,Chromium 12以及其他计算机上的IE 8和9上正常访问。当我尝试从自己的机器(服务器所在的同一台机器)上的IE9访问它时,出现奇怪的超时和延迟。 Catalyst服务器的输出不显示这些延迟,并且IE9流量视图甚至不显示请求曾经发送过!IE9失去对本地Catalyst服务器的请求

IE9 Request timeline

在服务器挂了它使用一个处理器核心的100%,但随后回落,不输出任何空闲。从Chrome或FF请求时,同样的请求需要5ms。

如果我^ C,而它的锁起来,我得到这个令人震惊的低级错误服务器:

 
Can't coerce UNKNOWN to string in sysread 
    at C:/strawberry/perl/site/lib/Catalyst/Engine/HTTP.pm line 440. 
Can't call method "_socket_data" without a package or object reference 
    at C:/strawberry/perl/site/lib/Catalyst/Engine/HTTP.pm line 358. 
panic: pad_free curpad 
    at C:/strawberry/perl/site/lib/Catalyst/Engine/HTTP.pm line 358. 

什么是关于如何IE9请求路由到本地插槽有什么不同?

环境信息:

  • 的Windows 7专业版64位
  • 草莓的Perl 5.10.1 86
  • 催化剂5.80032
  • 的Internet Explorer 9.0.8112.16421

回答

6

问题是否消失如果你运行Fiddler

如果是这样,你可能会遇到的问题是,你的网络服务器不正确的多线程和IE9的后台连接功能导致你的服务器挂起,因为它的后台连接没有请求的死锁它。

+0

使用Fiddler很好用!你能详细说明还是链接到关于背景连接功能的更多信息? Fiddler如何改变IE的后台连接,所以它不再是问题了?我的催化剂服务器绝对不是多线程的,但在IE9之前它不是问题。我很好奇为什么它只发生在本地连接上。远程IE9连接似乎没有相同的问题。 – wes 2011-05-12 16:05:40