Response.Redirect による System.Threading.ThreadAbortException の回避
ページのリダイレクトに Response.Redirect(...)
を使用すると、System.Threading.ThreadAbortException
がトリガーされる場合があります。これは、Web サーバーがリダイレクト後にページ処理を突然停止するために発生します。
endResponse
の Response.Redirect
パラメータは、現在のページの実行をどのように終了するかを制御します。 endResponse
を true
(デフォルト) に設定すると、ページがすぐに終了するため、データ損失や非効率な処理が発生する可能性があります。 false
に設定すると例外は回避されますが、ページは不必要に実行を継続できます。
最良の解決策は、Response.Redirect(url, false)
の後に Context.ApplicationInstance.CompleteRequest()
を使用することです。これにより、IIS パイプラインがすぐに EndRequest
フェーズに移行し、現在のページの実行が完全に停止されます。
Application_Error
ハンドラー内でのリダイレクト処理を含む、より深い理解とさらなるアドバイスについては、このトピックに関する Thomas Marquardt の洞察力に富んだブログ投稿を参照してください。
以上がResponse.Redirect() での System.Threading.ThreadAbortException を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。