私の IIS 7.5 には、startMode="AlwaysRunning" の AppPool があります。また、テストのために AppPool のリサイクルを 3 分に設定しました。
実行時間の長いタスク (10 分) を実行すると、ThreadAbort がスローされます。「AlwaysRunning」で直ると思いました。なぜこれが起こるのですか?他に何か変更する必要がありますか?
アプリケーション プールのリサイクルは、プールを閉じているため、ThreadAbortException を引き起こしています。何があっても、プール プロセスは終了し、再開されます。プール内のコードではこれを防ぐことはできません (ThreadAbortException は、キャッチできるが消費できないという点で特別です)。
justはstartMode="AlwaysRunning"
、プールが常に利用可能であることを意味します。どのプール プロセスであるかについては主張しません (したがって、プール プロセスが終了すると、別のプール プロセスが自動的に起動されます。IIS が再起動されると、w3wp.exe が自動的に起動されます)。
3 分間のリサイクル サイクル タイムの長さを削除します。いずれにせよ、それがテストにどのように役立つかはわかりません (ASP.NET アプリケーションが変更されるたびに、IIS は AppDomain を再起動します)。