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