2009-06-23 100 views
2

我們的(asp.net)系統是更大系統的一部分。它是通過這個更大的系統從javascript中啓動的,它通過window.open調用來打開一個新窗口。IE7在一段時間後停止發出網絡請求

(不談,認證數據等通過一個加密的查詢字符串參數傳遞到我們的系統中)

當IE7(遺憾的是該組織已經標準化了這一點),瀏覽器會使用我們的系統後(導航周圍測試頁面)一段時間(其間歇),開始不提出網絡請求。按F5會導致它顯示其加載動畫,但實際上沒有發生)。

你可以關閉我們的窗口,並返回到更大的系統(在它自己的窗口),它仍然可以正常工作。如果你重新啓動我們的系統,新的窗口打開,它看起來像它的加載,但沒有請求(用wireshark驗證)。系統位於不同的子域中。

這是有趣的事情,如果我啓動提琴手,一切都開始正常工作。只要我關閉Fiddler,它就會停止發出網絡請求。

該系統是一個相當html/javascript/ajax重系統(每頁1MB +),但不應該導致瀏覽器這樣做。很明顯,Firefox和Chrome的工作完美:)

讓它再次工作的唯一方法是關閉所有的IE窗口,並重新啓動。

我禁用了代理服務器,啓用它,幾乎可以做任何我能想到的事情。

任何人有任何想法?

UPDATE

我設法與小提琴手運行重現它。最初,在工作時,我可以看到小提琴手的所有要求。當它進入「無需請求」模式時(再次注意,沒有任何變化,我只是在瀏覽),我沒有看到Fiddler中有任何東西(即沒有新請求,沒有任何東西)。所有提琴手記錄的請求都已完成,因此沒有打開的連接。

我們幾乎在每臺機器上都看到了這一點。瀏覽大約15頁後,開始發生。這可能是一些環境問題嗎?我的測試機器是安裝有McAfee,IE7的vanilla XP。沒有別的東西在運行,IE中沒有安裝工具欄。

回答

3

嘗試合併http://www.enhanceie.com/dl/fixHTTPMax.reg以提高HTTP連接限制,然後檢查是否需要約10倍的時間才能遇到問題。

如果是這樣,那麼問題是您已經遇到了HTTP連接泄漏的問題,然後您最終達到了每服務器最大連接數限制。

1

打開IE中的JavaScript調試,並檢查是否有任何錯誤發生。

+0

不能有任何的javascript錯誤,因爲頁面還沒有加載,當這種情況發生時(即我按F5或Ctrl + F5,並沒有提出請求) – Gareth 2009-06-23 10:06:54

+0

好吧 - 我想接下來要做的是檢查你有IE 7的最新更新。如果你有或不能做到這一點,然後去禁用任何IE插件。通常這些阻止IE正常工作。 – RichardOD 2009-06-23 10:51:53

1

你有自己的小提琴手自動代理設置設置。

當小提琴手啓動時,它會修改IE的代理設置,以在小提琴手關閉時指向小提琴手,以恢復原始代理設置。

如果小提琴手看到現有的代理設置,它將使用它轉發的請求中的代理設置。

在某些錯誤情況下,您可以不用提琴手繼續運行,但仍然可以在IE設置中使用提琴手代理修改。您最終可能只能在Fiddler正在運行時才能使用IE。

重置IE的代理設置。

編輯

失敗,最可能的原因是具有沒有帶尚未履行未完成的請求。有兩個這些,並在默認的IE配置所有其他請求將無限期地等待未完成的請求。啓動提琴手可以治癒這一段時間,因爲請求不會直接傳送到服務器。你可以用小提琴手運行重現問題嗎?你有沒有在提琴手中看到優秀的要求?

+0

感謝您的回覆安東尼。我已經測試過所有這些(重置代理設置等)。甚至在我運行fiddler(並關閉代理設置)之前就會出現問題。 系統正在工作,然後當您使用它時,它突然停止。 – Gareth 2009-06-23 10:06:09

0

完成後請確保在HTTP標頭中設置了connect: close

相關問題