2012-07-11 9 views
6

Wir verwenden benutzerdefinierte Fehler von asp.net config Einstellung zur Verfügung gestellt. In der gesamten Anwendung (PL/BLL/DAL) verwenden wir keinen try catch. Also für jede Ausnahme in einer Schicht Anwendung Benutzer auf benutzerdefinierten Fehler Seite in benutzerdefinierten Fehlereinstellung in der Konfigurationsdatei umleiten. Jetzt wollen wir vor zeigt Fehlerseite folgende Informationen in Protokolldatei protokollieren:Asp.net 4.0: Wie bekomme ich Ausnahmedetails in der benutzerdefinierten Fehlerseite?

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

Bitte helfen Sie mir, wie oben Informationen in benutzerdefinierten Fehler page_load Ereignis sammeln ??

Danke,

@ Paul

Antwort

11

Sie Fehlerdetails in Session speichern und sie in benutzerdefinierte Fehlerseite erhalten.

Dieser Code ist in 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 
    } 

Dann in Ihrer Fehlerseite Last:

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

Setzen Sie dieses Attribut in Custom Abschnitt in web.config: redirectMode = "ResponseRewrite"

Verwandte Themen