3

要求されたファイルの欠落を、複雑で長時間のロジックで処理する必要があります。

私はそれを行うことができますが、Application_Errorそれ自体が非同期であるかどうかはわかりませんか?

たとえば、処理に 5 分以上かかる場合、このハンドラーは他のユーザーを常にブロックしますか?

4

1 に答える 1

0

ページ処理のApplication_Error一部は、ロードしたページから呼び出されるため、問題は、ページまたはハンドラーが非同期であるかどうかです。

セッションを使用しない場合、そしてもちろん、ミューテックスやデータベースのオープン/読み取り/書き込みなどの他の同期ロックを使用しない場合は、そうです

何故ですか ?セッションが完全な処理をロックしているため、この質問/回答を見てください: aspx ページを呼び出して画像をランダムに返す 遅い
ASP.NET サーバーが非同期的にページを処理しない
Web メソッドを非同期にしようとして
いる 同じ共有で別の Web アプリを処理しているときに Web アプリがブロックされたsession  
ASP.NET のボトルネックを特定するのに役立つ perfmon カウンターは何ですか?  
ASP.Net のセッションを完全に置き換える  
ファイルのアップロードと結果のプールにより、ASP.NET Web アプリが強制終了される

簡単にするために、これApplication_Errorは単なる静的関数呼び出しですが、ページまたはハンドラーの処理に接続されています。ページまたはハンドラーが互いにブロックされていないことを確認してください。すべて問題ありません。

一方、5 分の処理で、500 個をまとめてクエリ リストに入れないようにすると、別の問題が発生する可能性があります。

簡単なテストを行い、配置System.Threading.Thread.Sleep(20000);Application_Errorてエラーを作成し、他のページをロードし続けて動作します。

于 2012-12-20T08:54:49.780 に答える