Webアプリケーションで、サーバの処理時間が長い(5分〜10分)場合に*1、IE6、IE7で、こんなエラーがでる。
ページを表示できません。サーバーが見つからないか、DNS エラーです。
結論から言うと、まだよくわからない。ちなみに、原因は次に解説されている。
http://www.atmarkit.co.jp/fwin2k/win2ktips/448timeout/timeout.html
どうもこのエラーが出る直前に、IEが、TCPコネクションに対してRSTパケットを送信しているようだ。
また、中継機器が、5分間通信がないTCPコネクションに対し、RSTパケットを送信しているようだ。これに対し、IEがHTTPリクエストを再送(つまりTCPコネクションを再作成)しているようだ。
これ以上、手持ちの材料がない。
MSのサポートページには、タイムアウトは60分とあった。
Internet Explorer では、仕様により、サーバーからデータが返されるまでのタイムアウト時間が設定されています。 タイムアウト時間は、バージョン 4.0 および 4.01 の場合は 5 分、バージョン 5.x、6、および 7 の場合は 60 分です。
http://support.microsoft.com/kb/181050/ja
しかし、次の2つの記事では、タイムアウトが5分と書かれている。
IEでアクセスしたWebページがタイムアウトで表示されないことがある。 ... 途中略 ... デフォルトでは、約5分後にタイムアウトになるように設定されているが、レジストリを変更することでこの時間を変えられる。
http://trendy.nikkeibp.co.jp/article/tec/winxp/20070403/121467/
Internet Explorer 5.x/6.xでは、アクセスしたWebページがなかなか表示されないと、タイムアウトエラーが表示されるようになっている。 ... 途中略 ... 初期設定では、このタイムアウトにかかる時間は約5分(300000ミリ秒)となっている。
http://www.itmedia.co.jp/help/tips/windows/w0682.html
IEのタイムアウトって何?どこかでやってみるしかない*2。
とにかく、5分以内でレスポンスを返せば、問題は発生しない。IEも中継機器も「5分」をトリガーに、何かをやっている。こういう面倒な目にあいたくなければ、レスポンスは5分以内に返しなさいということだ(そして、たいていのWebの利用者もそれを望んでいるはず)。