有没有办法从Global.asax中Application_Error捕获的未处理异常中获取更多信息



在生产中,我在Global.asax中处理Application_Error事件,以记录(并通过电子邮件向我发送)任何偷偷通过的未捕获异常的详细信息:

void Application_Error(object sender, EventArgs e) // code simplified a bit for SO
{
Exception ex = Server.GetLastError();
MyTools.LogError("Global.asax::Application_Error", "An unhandled exception occurred", ex);
}

然而,错误消息本身通常是无用的;有一个堆栈跟踪,但没有行号通常没有引用我自己的任何代码,只有.net框架(BCL)方法。有时至少会有一个关于页面名称的提示,但这是最好的。

示例:

类型为"系统"的异常。网状物引发了HttpUnhandledException"。

远程主机关闭了连接。错误代码为0x80072746。

系统。Web

布尔句柄错误(System.Exception)

在系统中。网状物UI。页HandleError(异常e)在系统中。网状物UI。页ProcessRequestMain(布尔值包括同步点之前的阶段,布尔值包括异步点之后的阶段)在系统中。网状物UI。页处理请求(布尔值包含同步点之前的阶段,布尔值包含异步点之后的阶段)在系统中。网状物UI。页ProcessRequest()在系统中。网状物UI。页ProcessRequestWithNoAssert(HttpContext上下文)在系统中。网状物UI。页ProcessRequest(HttpContext上下文)在ASPaRealPageName_aspx。ProcessRequest(HttpContext上下文)在系统中。网状物HttpApplication。CallHandlerExecutionStep。系统网状物HttpApplication。I执行步骤。执行()在系统中。网状物HttpApplication。ExecuteStep(IExecutionStep步骤,Boolean和completedSynchronously)

知道我如何获得global.asax来给我更多有用的错误信息吗

我知道,如果有办法告诉代码放在哪里,我可以在代码中放入try-catch,但没有。

如果生产服务器没有pdb文件,它将不会给您行号。将你的pdb文件和dll一起复制以获取更多信息。

相关内容

  • 没有找到相关文章

最新更新