捕获global.asax中的特定错误

时间:2013-03-01 19:14:22

标签: c# asp.net exception-handling global-asax

我在全局asax中使用Application_Error事件来捕获错误并将它们写入文件。我可以在网页中看到特定的异常,但在日志文件中,我看到的是这样的一般错误:

Exception of type 'System.Web.HttpUnhandledException' was thrown.
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.review_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\...\ff7eee7c\ff24ade1\App_Web_tddyd4bt.3.cs:line 0
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

我如何编写错误,就像我在黄页中看到的那样记录日志文件而不是这个一般错误?

2 个答案:

答案 0 :(得分:3)

这是你要找的吗?

 Exception ex = Server.GetLastError();    
 String ExceptionMessage = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;

答案 1 :(得分:0)

在Global.asax中,找到Application_Error方法并添加以下内容:

 protected void Application_Error(object sender, EventArgs e)
    {
       Exception ex = Server.GetLastError();
        LogHelper.WriteLog(ex);
    }

您需要创建一个类来编写日志..

public class LogHelper
{
    public static void WriteLog(Exception exception)
    {
       //write to text file the exception.Message ...
    }
}