Rumah >pembangunan bahagian belakang >C++ >Response.Redirect dan ThreadAbortException: Bagaimana Mengelakkannya dengan Anggun?
System.Threading.ThreadAbortException dan Response.Redirect: Panduan Praktikal
Menggunakan Response.Redirect()
untuk mengubah hala halaman web kadangkala boleh mencetuskan System.Threading.ThreadAbortException
. Ini berlaku kerana pelayan berhenti memproses baki kod halaman semasa selepas memulakan ubah hala.
Semasa menetapkan endResponse
kepada false
dalam Response.Redirect(url, false)
menghalang pengecualian ini, ia boleh menyebabkan penggunaan sumber yang tidak perlu kerana pelayan terus memproses halaman asal.
Pendekatan yang Disyorkan
Penyelesaian yang paling cekap menggabungkan Response.Redirect(url, false)
dengan Context.ApplicationInstance.CompleteRequest()
. Ini memastikan ubah hala yang bersih tanpa melaksanakan sebarang kod selanjutnya pada halaman asal:
<code class="language-csharp">Response.Redirect(url, false); Context.ApplicationInstance.CompleteRequest();</code>
Kaedah ini dengan jelas memberi isyarat kepada IIS untuk beralih ke fasa EndRequest
, dengan berkesan menamatkan pemprosesan halaman asal.
Untuk menyelami topik ini dengan lebih mendalam, termasuk amalan terbaik untuk mengendalikan ubah hala dalam Application_Error
pengendali, rujuk catatan blog terperinci Thomas Marquardt (pautan akan diberikan jika tersedia).
Atas ialah kandungan terperinci Response.Redirect dan ThreadAbortException: Bagaimana Mengelakkannya dengan Anggun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!