Asp.net 4.0:如何在自定义错误页面中获取异常详细信息?

时间:2012-07-11 03:15:55

标签: asp.net-4.0 custom-error-pages exception-logging

我们正在使用asp.net配置设置提供的自定义错误。在整个应用程序(PL / BLL / DAL)中,我们没有使用任何try catch。因此,对于任何图层应用程序中的任何异常,都会将用户重定向到配置文件中的自定义错误设置中的自定义错现在我们要在显示错误页面之前在日志文件中记录以下信息:

- Date & time
- Exception message & strack trace.
- Page Name
- Method Name
- Method Parameter & values.

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

谢谢,

@保罗

2 个答案:

答案 0 :(得分:11)

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

此代码位于 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;
        }
    }

答案 1 :(得分:0)

在web.config中的customErrors部分设置此属性:redirectMode =“ResponseRewrite”