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