c# - 建议在 Asp.Net Application_Error 处理程序中调用 HttpResponse.Redirect 时将 endResponse 设置为 False 吗?
问题描述
我有一个运行带有 Owin 管道的 .NET Framework 4.7.2 的 Asp.Net Web Forms 应用程序。
在 Application_Error 处理程序中,我在处理程序末尾添加代码以在引发未处理的异常时重定向到自定义错误页面。我在该站点上阅读了很多帖子,这些帖子表明调用Response.Redirect("~/ErrorPage.aspx")
就足够了,但是HttpResponse.Redirect 方法的 Microsoft 文档在备注部分指出:
重定向调用End在完成时抛出 ThreadAbortException 异常。此异常对 Web 应用程序性能有不利影响。因此,我们建议您不要使用此重载,而是使用 HttpResponse.Redirect(String, Boolean) 重载并为 endResponse 参数传递 false,然后调用CompleteRequest方法。
那么几个问题:
1)在 Application_Error 处理程序中是否有我不应该像下面这样重定向的原因?
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' Other logging code etc removed for brevity
Server.ClearError()
Response.Redirect("~/ErrorPage.aspx", endResponse:=False)
CompleteRequest()
End Sub
2)在页面事件处理程序(例如Page_Load)中,按钮单击事件等......有没有理由我不应该调用endResponse:=False
然后CompleteRequest()
?或者换句话说,在什么情况下您肯定要确保将endResponse
其设置为True
?
解决方案
推荐阅读
- wordpress - Wordpress 将 https 非尾部斜杠重定向到非 https 尾部斜杠
- mysql - 如何编写SQL-查询来解决8皇后的问题?
- javascript - 如何访问在 Ajax 回调函数中初始化的变量?
- qt - Cmake:访问 qtvirtual 键盘模块
- reactjs - 监听 App 中的 ReactContext 值变化
- python - 一对多自引用关系 SQLAlchemy
- python - discord.py - AttributeError:模块'discord'没有属性'PCMVolumeTransformer'
- spring-boot - Spring Boot中的事务同步无法正常工作
- android - MVP模型属于表现层还是领域层?
- swift - 如何缩放暂停的 ARFaceTrackingSession