加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

哪些ASP.NET生命周期事件在HttpApplication.Error之后发生?

发布时间:2020-12-15 23:25:24 所属栏目:asp.Net 来源:网络整理
导读:我想知道在通过HttpApplication.Error事件处理错误后,ASP.NET请求生命周期的哪些部分发生.具体来说,哪个事件在 http://msdn.microsoft.com/en-us/library/bb470252.aspx#Stages火灾发生错误后列出?我知道EndRequest仍然触发,我怀疑PreSendRequestHeaders和P
我想知道在通过HttpApplication.Error事件处理错误后,ASP.NET请求生命周期的哪些部分发生.具体来说,哪个事件在 http://msdn.microsoft.com/en-us/library/bb470252.aspx#Stages火灾发生错误后列出?我知道EndRequest仍然触发,我怀疑PreSendRequestHeaders和PreSendRequestContent也是一样的,但除此之外我不知道.

这是否取决于在生命周期中什么时候发生错误?这是否取决于我是否在错误处理程序中调用Server.ClearError()?

我问这个问题,因为我不知道我是否应该从我的错误处理程序调用HttpApplication.CompleteRequest().

解决方法

最好的方法是捕获服务器最后一个错误和appdomain异常.

所有这些都可以在Global.asax.cs文件中完成.

请检查以下步骤:

1-在Global.asax.cs中,捕获最后一个错误并记录它.

protected void Application_Error(object sender,EventArgs e)
    {
        Exception exception = Server.GetLastError();
        Server.ClearError();
        log.Error("Application Error caught in Global ",exception);
    }

2-在AppDomain上添加UnhandledException事件的事件处理程序,这应该被添加到Application_Start中:

protected void Application_Start(object sender,EventArgs e)
    {
        //....
        AppDomain.CurrentDomain.UnhandledException 
              += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
    }

3-这里是CurrentDomain_UnhandledException的实现:

void CurrentDomain_UnhandledException(object sender,UnhandledExceptionEventArgs e)
    {
      if (e != null)
        log.Error("Domain Unhandled Exception: ",e.ExceptionObject as Exception);
    }

快乐编码:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读