2012-07-11 9 views
6

Stiamo usando l'errore personalizzato fornito dall'impostazione di configurazione di asp.net. Nell'intera applicazione (PL/BLL/DAL) non stiamo utilizzando alcun try catch. Quindi, per qualsiasi eccezione in qualsiasi applicazione di livello, reindirizzare l'utente alla pagina di errore personalizzata impostata nell'impostazione di errore personalizzata nel file di configurazione. Ora vogliamo accedere seguenti informazioni nel file di registro prima Questa è la pagina di errore:Asp.net 4.0: come ottenere i dettagli delle eccezioni nella pagina degli errori personalizzati?

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

Please help me come raccogliere informazioni di cui sopra in evento personalizzato errore Page Load ??

Grazie,

@ Paolo

risposta

11

È possibile memorizzare i dettagli di errore nella sessione e li entrare in pagina di errore personalizzata.

Questo codice è 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 
    } 

Poi, nel tuo pagina di errore carico:

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

Impostare questo attributo nella sezione customErrors nel web.config: redirectMode = "ResponseRewrite"