在 ASP.NET 重定向中處理 System.Threading.ThreadAbortException
在 ASP.NET 中使用 Response.Redirect()
有時會拋出 System.Threading.ThreadAbortException
。發生這種情況是因為伺服器在重定向後終止了目前頁面的執行。 將endResponse
中的true
設定為Response.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中文網其他相關文章!