如何通过查询字符串传递异常对象

时间:2013-01-14 07:17:22

标签: c# asp.net object global-asax

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中获取了一个异常对象。我需要将此异常对象传递给页面errorpage.aspx,并将其写入日志文件。

我正在使用上面的代码,但是获取异常消息,而不是对象。

1 个答案:

答案 0 :(得分: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);
}