2009-05-26 19 views
5

私は実行に数分かかるページがあります。 web.configの<compilation />タグにdebug="false"を設定すると、「リクエストがタイムアウトしました」というメッセージが表示されます。エラー(と私のコードで内部のtry/catchブロックがエラーを「スレッドが。中止されました」を得る。"リクエストがタイムアウトしました。" debug = "false"を設定するとエラーが発生する

長いページがプロダクションモードで実行できるようにする修正は何ですか?デバッグモードは無限のタイムアウトを持っていますか?

+0

実行に数分かかることがありますか?その機能を予定しているコンソールアプリケーションに移動することができますか? – sisve

+0

Ehh ...使いやすさのためにウェブフォームを介してのみアクセスします。それは保護されたページであり、スケジュールされたタスクは毎晩それに当たる。 Windowsサービスなどを介してこれらのタスクを実行している可能性がありますが、それが壊れていない場合は、実際に収益を生み出すことができるものに取り組んでください:) – JerSchneid

答えて

5

ページの実行には、スクリプトのタイムアウトを増やす必要があります。デフォルトは90秒ですので、時間がさらに必要な場合は、次のsystem.web要素(executionTimeout属性)で変更してください。

<httpRuntime executionTimeout="seconds" 
      maxRequestLength="kbytes" 
      minFreeThreads="numberOfThreads" 
      minLocalRequestFreeThreads="numberOfThreads" 
      appRequestQueueLimit="numberOfRequests" 
      useFullyQualifiedRedirectUrl="true|false" /> 
+0

タイムアウトを増やすことに加えて、ページを非同期にすることを検討したい。同期モードで長時間実行されているページは、その間スレッドを消費します。非同期にすることで、ASP.NETスレッドを解放して他の要求を処理できるようになります。また、バックグラウンドで追加のスレッドを生成して長時間実行される要求を処理できます。今日、非同期ASP.NETページは使い方が簡単です。 – jrista

5

あなたは最大を設定することができますweb.configファイル内の要求のための所要時間:executionTimeoutは、要求が自動的にASP.NETによってシャットダウンされる前に実行することが許可されている最大秒数を指定します

<system.web> 
    ... 
    <httpRuntime executionTimeout="600" /> 

を詳細することができます見つけられるhere

関連する問題