使用 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中文網其他相關文章!