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

asp.net-4.0 – Asp.net 4.0:如何在自定义错误页面中获取异常详

发布时间:2020-12-15 20:46:56 所属栏目:asp.Net 来源:网络整理
导读:我们正在使用asp.net配置设置提供的自定义错误.在整个应用程序(PL / BLL / DAL)中,我们没有使用任何try catch.因此,对于任何图层应用程序中的任何异常,都会将用户重定向到配置文件中的自定义错误设置中的自定义错现在我们要在显示错误页面之前在日志文件中记
我们正在使用asp.net配置设置提供的自定义错误.在整个应用程序(PL / BLL / DAL)中,我们没有使用任何try catch.因此,对于任何图层应用程序中的任何异常,都会将用户重定向到配置文件中的自定义错误设置中的自定义错现在我们要在显示错误页面之前在日志文件中记录以下信息:
- Date & time
- Exception message & strack trace.
- Page Name
- Method Name
- Method Parameter & values.

请帮我如何在自定义错误page_load事件中收集上述信息?

谢谢,

@保罗

解决方法

您可以在会话中存储错误详细信息并将其置于自定义错误页面中.

此代码位于Global.asax中:

protected void Application_Error(object sender,EventArgs e)
    {
        Exception err = Server.GetLastError();
        Session.Add("LastError",err);
    }

    void Session_Start(object sender,EventArgs e) 
    {      
        Session["LastError"] = ""; //initialize the session
    }

然后在你的错误页面加载:

protected void Page_Load(object sender,EventArgs e)
    {
        Exception err = Session["LastError"] as Exception;
        //Exception err = Server.GetLastError();
        if (err != null)
        {
            err = err.GetBaseException();
            lblErrorMsg.Text = err.Message;
            lblSource.Text = err.Source;
            lblInnerEx.Text = (err.InnerException != null) ? err.InnerException.ToString() : "";
            lblStackTrace.Text = err.StackTrace;
            Session["LastError"] = null;
        }
    }

(编辑:李大同)

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

    推荐文章
      热点阅读