ホームページ >バックエンド開発 >C++ >Response.Redirect 中の System.Threading.ThreadAbortException を回避する方法は?

Response.Redirect 中の System.Threading.ThreadAbortException を回避する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-20 21:09:111041ブラウズ

How to Avoid System.Threading.ThreadAbortException During Response.Redirect?

ASP.NET リダイレクトでの System.Threading.ThreadAbortException の処理

ASP.NET で Response.Redirect() を使用すると、System.Threading.ThreadAbortException がスローされる場合があります。これは、サーバーがリダイレクト後に現在のページの実行を終了するために発生します。 endResponsetrueResponse.Redirect() に設定すると、例外は回避されますが、リダイレクト後に不要な処理が発生するため、非効率的です。

最良のアプローチ

理想的な解決策は、Response.Redirect()endResponse に設定して false を使用し、その後に Context.ApplicationInstance.CompleteRequest() を使用することです。これにより、例外なくきれいにリダイレクトされます:

<code class="language-csharp">Response.Redirect(url, false);
Context.ApplicationInstance.CompleteRequest();</code>

これにより、IIS パイプラインはすぐに EndRequest ステージに進み、現在のページがそれ以上処理されなくなります。

続きを読む

Application_Error ハンドラー内でのリダイレクトの処理を含む、より詳細な説明については、Thomas Marquardt の洞察力に富んだブログ投稿を参照してください (利用可能な場合は、ブログ投稿へのリンクがここに挿入されます)。 このアプローチにより、ASP.NET アプリケーションで効率的かつ例外のないリダイレクトが保証されます。

以上がResponse.Redirect 中の System.Threading.ThreadAbortException を回避する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。