Stackoverflow の優秀な皆さん、こんにちは。ASP.Net C# で、エラーが発生したとき、または Application_Error がトリガーされたときにアプリケーションが終了するかどうかを知りたいですか? 私の理解では、そうすべきではありません。
4 に答える
通常、リクエストに関連付けられたスレッドで例外が発生すると、Application_Error イベントがトリガーされ、処理されない場合はクライアントに HTTP 500 エラーが返されます。
ただし、リクエストに関連付けられていないスレッドで未処理の例外が発生すると、ワーカー プロセスがダウンします (つまり、アプリケーションが強制終了されます)。これは、Application_Error メソッドを使用してハンドラーをセットアップしている場合でも発生します。詳細については、マネージ スレッドの例外に関する MSDN リンク
いいえ、ありません。Application_Endは、ホスティングIISプロセス(w3wp.exe)が正常に終了したときに起動されます。正常な終了の原因として最も可能性が高いのは、IISが定期的にプロセスをリサイクルする場合です。
例外を処理していない場合、おそらく HTTP 500 エラー ページが表示されます。
アプリケーション自体は Web アプリケーションであるため、「終了」しません。Web サイトへの再エントリは、新しいセッションを開始する可能性があります。
いいえ、未処理の例外が発生した場合、application_end イベントはトリガーされません。代わりに Application_Error がトリガーされます。
通常、Application_End は、アプリケーション プールがリサイクルされたとき、または IIS を再起動したときに発生します。