インターフェースの使用に関するPhilHaackの記事を読んでIRegisteredObject
、AppDomainがダウンしたときにバックグラウンドスレッドが完了していることを確認し、それをコードに実装しました。ただし、AppDomainのクラッシュをテストするためにシミュレートする方法が完全にはわかりません。AppDomainのクラッシュをシミュレートするにはどうすればよいですか?
1 に答える
AppDomainをシャットダウンする最も簡単な方法は、親プロセスを停止させることです。ASP.NETでは、コードが実行されているアプリケーションプールをリサイクルまたは停止することで、これを行うことができます。ロギングが確実にフラッシュされるようにするためのコードがいくつかあります。これは、過去にテストした方法です。
完全なクラッシュに関しては、どうすればそれを回避できるのかよくわかりません...ホスティング環境は例外をキャッチするため、実行できない可能性があります。あなたは試すことができますか、Environment.Exit
それともEnvironment.FailFast
親プロセスをすぐに終了させるのでしょうか?
編集:ここで最も簡単なオプションを忘れました... Web.configを保存するだけです-これにより、AppDomainのリサイクルがトリガーされます!
いくつかの代替...
IISを使用して実行している場合は、IISマネージャーを起動し、次の手順に従ってアプリケーションプールをリサイクルできます...
- 「サイト」の下にあるアプリケーションを見つけます。それはおそらくそこにあるウェブサイトの1つの下にあります-おそらく仮想ディレクトリとして。
- アプリケーションを右クリックし、[アプリケーションの管理]、[詳細設定]の順に選択します。
- 「アプリケーションプール」をメモします。
- 「アプリケーションプール」の下にあるアプリケーションプールを見つけます。
- それを右クリックして、リサイクルを押します。
IIS Expressの場合、トレイのアイコンを右クリックするだけで、UIでアプリケーションを停止できるはずです。
Visual Studio Development Server(Cassini)の場合、トレイを使用してアプリケーションを停止することもできます。