1

私の状況はこれです:

長いプロセスを実行するページが作成されました。... このプロセスは次のように構成されます。 - ファイルを読み取ります。Csv、ファイルの各行に対して請求書が作成されます...このプロセスの最後に、成功のメッセージが表示されます。

このため、プロセスが非同期であり、プロセスの終了を待機している間に UpdateProgress を表示できるように、updatepanel を使用することが決定されました。このため、scriptmanagment のプロパティに AsyncPostBackTimeout = 7200 (2 時間) が追加され、タイムアウトも発生しました。 qa サーバーや運用サーバーと同様に、アプリの web.config で増加します。

テストは localhost で qa サーバーとして行われ、非常にうまく機能します。本番サーバーで機能をテストするときに問題が発生します。

これにより、ファイルがロードされ、プロセスが開始されます...この期間中にUpdateProgressが実行されますが、1〜2分しかかからず、プロセスが切り捨てられたかのように、最後のメッセージを表示せずに実行が終了します. 作成された請求書を確認すると、ファイルの上位 10 レコードのみが作成されます (50,100 または + 行のファイルから)。

何が問題なのかわからないので、これで私を助けたいと思います。

4

1 に答える 1

2

asp.net は長時間実行されるプロセスには適していません。

IIS のデフォルトのページ タイムアウトは 110 秒 (.net 1.0 の場合は 90 秒) です。これを増やすことはできますが、お勧めしません。

あなたがそれをしなければならない場合、ここに設定があります:

<system.web>
   ...
   <httpRuntime executionTimeout="180"/>
   ...
<\system.web>

httpRuntimeを参照

この作業を Windows サービス、WCF、またはスタンドアロンの exe に渡します。ページを使用して、そのアプリケーションからプロセスのステータスを取得します。

長時間実行されるプロセスにワークフローを使用する方法を示す例を次に示します。

処理の大部分をasp.netから移動し、そのスレッドを解放してページ要求を処理します。

于 2012-08-01T05:37:47.390 に答える