2012-07-11 51 views
6

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

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

请帮助我如何收集上面的自定义错误Page_Load事件的信息?

感谢,

@保罗

回答

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; 
     } 
    } 
0

坐落在的customErrors节这个属性在web.config中:redirectMode = “ResponseRewrite”

相关问题