1

私の IIS 7.5 には、startMode="AlwaysRunning" の AppPool があります。また、テストのために AppPool のリサイクルを 3 分に設定しました。

実行時間の長いタスク (10 分) を実行すると、ThreadAbort がスローされます。「AlwaysRunning」で直ると思いました。なぜこれが起こるのですか?他に何か変更する必要がありますか?

4

1 に答える 1

0

アプリケーション プールのリサイクルは、プールを閉じているため、ThreadAbortException を引き起こしています。何があっても、プール プロセスは終了し、再開されます。プール内のコードではこれを防ぐことはできません (ThreadAbortException は、キャッチできるが消費できないという点で特別です)。

justはstartMode="AlwaysRunning"、プールが常に利用可能であることを意味します。どのプール プロセスであるかについては主張しません (したがって、プール プロセスが終了すると、別のプール プロセスが自動的に起動されます。IIS が再起動されると、w3wp.exe が自動的に起動されます)。

3 分間のリサイクル サイクル タイムの長さを削除します。いずれにせよ、それがテストにどのように役立つかはわかりません (ASP.NET アプリケーションが変更されるたびに、IIS は AppDomain を再起動します)。

于 2012-09-25T01:46:36.467 に答える