0
void Application_Error(object sender, EventArgs e)
{   
    Exception objException = Server.GetLastError().GetBaseException();        
    Server.Transfer("~/ErrorPage/Error_Page.aspx?objException=" 
                        + objException,true);
}

//Error page.aspx page load
protected void Page_Load(object sender, EventArgs e)
{
    object objException = Request.QueryString["objException"];
    //Write exception in log file.
    WriteApplicationErrorLog(objException.Message, objException.StackTrace);
}

Global.asaxアプリケーション レベルで例外オブジェクトを取得しています。この例外オブジェクトを page に渡しerrorpage.aspx、ログ ファイルに書き込む必要があります。

上記のコードを使用していますが、オブジェクトではなく例外メッセージが表示されます。

4

1 に答える 1

1

クラスを作成し、例外オブジェクトをそれに渡してログに記録することができますが、何らかの方法でエラーページに渡したい場合は、例外オブジェクトをセッションに保存し、エラーページでアクセスできます。

void Application_Error(object sender, EventArgs e)
{    
    Session["YourException"] =  Server.GetLastError().GetBaseException();
    Server.Transfer("~/ErrorPage/Error_Page.aspx?objException=" 
                        + objException,true);
}

protected void Page_Load(object sender, EventArgs e)
{
    Exception objException = (Exception ) Session["YourException"];

    //Write exception in log file
    WriteApplicationErrorLog(objException.Message, objException.StackTrace);
}
于 2013-01-14T07:21:00.747 に答える