2012-07-11 13 views
6

asp.netの設定で提供されるカスタムエラーを使用しています。アプリケーション全体(PL/BLL/DAL)ではtry catchを使用していません。したがって、どのレイヤーアプリケーションの例外でも、設定ファイルのカスタムエラー設定で設定されたカスタムエラーページにユーザーをリダイレクトします。エラーページを表示する前に、次の情報をログファイルに記録します。Asp.net 4.0:カスタムエラーページで例外の詳細を取得するには?

カスタムエラーpage_loadイベントで上記の情報を収集する方法を教えてください。

おかげで、

@Paul

答えて

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 
    } 

負荷:redirectMode =:web.configファイル内のcustomErrorsセクションでこの属性を設定し

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; 
     } 
    } 
関連する問題