私の Web アプリケーション (ASP.NET 4.0) は、クライアント側からサーバーを呼び出します (AjaxPro ライブラリを使用しますが、違いはないと思います)。呼び出しは、サーバー上で長時間実行される可能性のあるタスクを開始しています。完了するまでに約 5 分かかる場合があります。今回は喜んで待っていましたが、何らかの理由で、正確に 90 秒後 (FireBug によると 2 分 60 秒) にリクエストが中断されました。Service Unavailable 503 メッセージを返します。これは、IIS (7.0) でアプリケーションをホストしている場合にのみ発生します。ASP.NET 開発サーバーの VS2010 からデバッグ モードで、ローカル PC で問題なく動作します (つまり、要求を中断せずに 5 分間すべて処理します)。
これまでにいくつかのことを試しました:
- AjaxPro グローバル タイムアウトを増やしました: AjaxPro.timeoutPeriod = 1000000;
次のように web.config ファイルを変更しました。
<httpRuntime maxRequestLength="102400" executionTimeout="360" /> <sessionState timeout="60"></sessionState>
IIS Manager -> Sites -> My website -> Advanced Settings で、Connection Time-out (seconds) プロパティの値を増やしました。
- アプリケーションのアプリケーション プール -> 詳細設定で、考えられるすべてのタイムアウトを増やしました。
- サーバー側ハンドラーのコードで HttpContext.Current.Server.ScriptTimeout を増やそうとしました。
注意することが役に立ったようです。ASP.NET 開発サーバーでは正常に動作しますが、IIS に関しては、90 秒後に正確に要求が切断されます。
何か考えはありますか?