2

電子書籍を作成できるアプリケーションがあります。このアプリケーションには、AIR ファイルを作成するエクスポート モジュールがありますが、これには時間がかかる場合があります (2500 ページの書籍もあります)。エクスポートすると、次のエラーが発生します。

Thread was being aborted. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Threading.ThreadAbortException: Thread was being aborted.

Source Error: 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 

[ThreadAbortException: Thread was being aborted.]
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +501
   System.Web.ApplicationStepManager.ResumeSteps(Exception error) +564
   System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +141
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +436

ランタイムの実行タイムアウトを 3600 秒に変更しましたが、約 3 分間クラッシュし続けます。それは時間に関連しています...クラッシュする3分に近づくたびに、誰かが私を助けてくれることを願っています.

4

3 に答える 3

4

パウロは例外の原因について正しいと思います。IISとASP.NETの両方に、要求にかかる最大時間を制限する設定があります。ASP.NETの場合、Machine.Configファイルにあります(httpRuntime要素のexecutionTimeout属性を探します)。私の開発マシンでは90秒に設定されています。

ただし、アプリケーションが不正なリクエストでハングしないようにするために設定が変更されているため、この設定を変更することはお勧めしません。

長時間実行されるタスクでは、非同期実行を使用する必要があります。非同期実行では、実際の作業は別のスレッドで処理されます。これにより、リクエストを処理するスレッドが解放され、アプリケーションの全体的なパフォーマンスに適した他のリクエストを処理できるようになります。

これに関するいくつかの良い記事が利用可能です。例: http: //msdn.microsoft.com/en-us/magazine/cc163725.aspx

于 2009-05-05T14:45:54.193 に答える
0

多くの場合、このエラーは実際には OutOfMemory 例外から発生します。利用可能な InnerException はありますか?

于 2009-04-30T10:04:39.123 に答える
0

IIS には、実行時間が長すぎる場合にスレッド/アプリケーション ドメインを強制終了する「暴走」スレッド保護があります。

于 2009-04-30T10:07:10.567 に答える