Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengelakkan System.Threading.ThreadAbortException Semasa Respons.Redirect?
Mengendalikan Sistem.Threading.ThreadAbortException dalam ASP.NET Redirects
Menggunakan Response.Redirect()
dalam ASP.NET kadangkala boleh membuang System.Threading.ThreadAbortException
. Ini berlaku kerana pelayan menamatkan pelaksanaan halaman semasa selepas ubah hala. Menetapkan endResponse
kepada true
dalam Response.Redirect()
mengelakkan pengecualian, tetapi membenarkan pemprosesan yang tidak perlu selepas ubah hala, yang tidak cekap.
Pendekatan Terbaik
Penyelesaian yang ideal ialah menggunakan Response.Redirect()
dengan endResponse
ditetapkan kepada false
, diikuti dengan Context.ApplicationInstance.CompleteRequest()
. Ini mengubah hala dengan bersih tanpa pengecualian:
<code class="language-csharp">Response.Redirect(url, false); Context.ApplicationInstance.CompleteRequest();</code>
Ini memberitahu saluran paip IIS untuk segera meneruskan ke peringkat EndRequest
, menghalang pemprosesan selanjutnya halaman semasa.
Bacaan Lanjut
Untuk penjelasan yang lebih terperinci, termasuk pengendalian ubah hala dalam pengendali Application_Error
, lihat catatan blog berwawasan Thomas Marquardt (pautan ke catatan blog akan disisipkan di sini jika tersedia). Pendekatan ini memastikan ubah hala yang cekap dan bebas pengecualian dalam aplikasi ASP.NET anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan System.Threading.ThreadAbortException Semasa Respons.Redirect?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!