7

asp.net構成設定によって提供されるカスタムエラーを使用しています。アプリケーション全体 (PL/BLL/DAL) では、try catch を使用していません。そのため、任意のレイヤー アプリケーションで例外が発生した場合は、構成ファイルのカスタム エラー設定で設定されたカスタム エラー ページにユーザーをリダイレクトします。ここで、エラー ページを表示する前に、次の情報をログ ファイルに記録します。

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

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

ありがとう、

@ポール

4

2 に答える 2

12

エラーの詳細をセッションに保存し、カスタム エラー ページで取得できます。

このコードは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;
        }
    }
于 2012-08-05T07:57:38.600 に答える
0

web.config の customErrors セクションでこの属性を設定します: redirectMode="ResponseRewrite"

于 2016-02-12T14:33:06.243 に答える