IE7はしばらくするとネットワーク要求の作成を停止します
-
06-07-2019 - |
質問
当社(asp.net)システムは、より大きなシステムの一部です。この大きなシステムを介して、新しいウィンドウを開くwindow.open呼び出しを行うjavascriptから起動されます。
(さて、認証データなどは暗号化されたクエリ文字列パラメーターを介してシステムに渡されます)
IE7でテストする場合(残念ながら組織はこれを標準化しています)、ブラウザーはシステムを(ページ間を移動する)しばらく(断続的に)使用した後、ネットワーク要求を行わないようになります。 F5を押すと、ロードアニメーションが表示されますが、実際には何も起こりません。
ウィンドウを閉じて、(それ自体のウィンドウ内の)より大きなシステムに戻ると、引き続き正常に動作します。システムを再起動すると、新しいウィンドウが開き、読み込み中のように見えますが、リクエストは行われません(wiresharkで検証済み)。システムは個別のサブドメインにあります。
これは面白いことです。Fiddlerを起動すると、すべてが正常に動作し始めます。 Fiddlerを閉じるとすぐに、ネットワーク要求の作成が停止します。
このシステムはhtml / javascript / ajaxの重いシステム(ページあたり1MB +)ですが、ブラウザがこれを行うことはありません。明らかにFirefoxとChromeは完璧に動作します:)
それを再び機能させる唯一の方法は、すべてのIEウィンドウをシャットダウンしてから再起動することです。
プロキシサーバーを無効にし、有効にし、考えられるほとんどすべてのことを行いました。
アイデアはありますか?
更新
私はフィドラーを実行してそれを再現することができました。最初は、その動作時に、Fiddlerですべてのリクエストを確認できます。 「リクエストが作成されていない」状態になると、モード(何も変わらないことに注意してください、私はただブラウジングしています)、Fiddlerには何も表示されません(つまり、新しいリクエストはありません、何もありません)。フィドラーが記録したすべてのリクエストは完了しているため、開いている接続はありません。
これはほとんどすべてのマシンで見られます。約15ページを閲覧した後、これが起こり始めます。環境的なものでしょうか?私のテストマシンは、McAfee、IE7を搭載したバニラXPインストールです。 IEには他に何も実行されておらず、ツールバーもインストールされていません。
解決
http://www.enhanceie.com/dl/fixHTTPMax.regをマージしてみてください HTTP接続の制限を超えてから、問題が発生するまでに約10倍の時間がかかるかどうかを確認します。
もしそうなら、問題はHTTP接続がリークされているという問題を引き起こしており、最終的にはサーバーあたりの最大接続数の制限に達していることです。
他のヒント
IEでJavaScriptのデバッグを有効にし、発生したエラーを確認します。
フィドラーの自動プロキシ設定を使用して、少し漬け込んでいます。
fiddlerが起動すると、IEのプロキシ設定が変更され、fiddlerが閉じたときにfiddlerを指すようになり、元のプロキシ設定が復元されます。
フィドラーが既存のプロキシ設定を検出した場合、転送するリクエストでそれらを使用します。
特定のエラー状態では、フィドラーを実行しないままにしておくことができますが、IEの設定でフィドラープロキシの変更はそのままです。 Fiddlerが実行されている場合にのみIEが機能する状況になる可能性があります。
IEのプロキシ設定をリセットします。
編集
最も可能性の高い原因が、まだ満たされていない未処理のリクエストを持っていることに失敗した場合。これらのうち2つを持ち、デフォルトのIE構成では、他のすべてのリクエストは未処理のリクエストが完了するまで無期限に待機します。リクエストはサーバーに直接送信されないため、フィドラーを起動すると、しばらくの間これを解決できます。フィドラーの実行中に問題を再現できますか?フィドラーに未処理のリクエストがありますか?
完了したら、HTTPヘッダーの connect:close
の設定を確認してください。