2008-08-27 1 views
13

Excelシートを作成してユーザーに送信するASP.netページがあります。問題は、リクエストがexecutionTimeout(デフォルトあたり110秒)より長く実行されるため、時々私はHttpタイムアウトを取得することになります。コード/ "refresh"要求でASP.net executionTimeoutを設定する

私はこの問題を回避するために何をしているのだろうと思っていますが、通常はexecutionTimeoutをweb.configに増やしたくありませんか?

PHPでは、set_time_limitが存在していますが、それは寿命を延ばす機能で使用できますが、C#/ ASP.netのようなものは見られませんでしたか?

ASP.netで長期実行機能をどのように処理しますか?

答えて

13

をご希望のもののようなものだろうクライアントがタイムアウトしても、サーバーから直接確実に解決できません。これを回避するには、レスポンスの準備が整うまで返信する「処理」ページ(Robのように)を実装することができます。あるいは、AJAXを調べて同様のことをすることもできます。

+1

これはASP.NET MVCアプリでも動作します - ありがとう! –

1

私は実際にこの問題に直面する必要はありませんでしたので、心に留めてください。

処理が非同期で実行でき、完了したらコールバックメソッドを指定して、ページを「私たちはあなたの要求を処理しています..」ループサイクルにしておいてください。これを開いて、素晴らしいUI拡張機能を追加することもできます。

ちょっと思っています。それはおそらく、あなたが

HttpContext.Current.Server.ScriptTimeout

を設定することができます。しかし、あなたはまだの問題がある可能性があり、この一つのリクエストの実行のタイムアウトを増やしたい場合は、私がやって:)

+0

このアイディアを詳しく教えていただけますか?どのようにコールバックメソッドを設定しますか? –