Asp.net 有没有办法从Global.asax中的应用程序错误捕获的未处理异常中获取更多信息?
在生产过程中,我在Global.asax中处理应用程序_错误事件,以记录(并通过电子邮件向我发送)任何未捕获的异常的详细信息,这些异常是通过:Asp.net 有没有办法从Global.asax中的应用程序错误捕获的未处理异常中获取更多信息?,asp.net,global-asax,unhandled-exception,application-error,Asp.net,Global Asax,Unhandled Exception,Application Error,在生产过程中,我在Global.asax中处理应用程序_错误事件,以记录(并通过电子邮件向我发送)任何未捕获的异常的详细信息,这些异常是通过: void Application_Error(object sender, EventArgs e) // code simplified a bit for SO { Exception ex = Server.GetLastError(); MyTools.LogError("Global.asax::Application_Erro
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 framework(BCL)方法。有时至少会有一个关于页面名称的提示,但这是最好的
例如:
引发了类型为“System.Web.HttpUnhandledException”的异常
远程主机关闭了连接。错误代码为0x80072746
系统.Web
布尔句柄错误(System.Exception)
位于System.Web.UI.Page.HandleError(异常e)
在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
在System.Web.UI.Page.ProcessRequest(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
在System.Web.UI.Page.ProcessRequest()中
位于System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext上下文)
在System.Web.UI.Page.ProcessRequest(HttpContext上下文)中
在ASP
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)
你知道我如何获取global.asax以提供更多有用的错误信息吗?
我知道如果有办法告诉代码放在哪里,我可以在代码中添加一个try catch,但是没有。如果您的生产服务器没有pdb文件,它将不会给您行号。
将pdb文件与DLL一起复制以获取更多信息。如果生产服务器没有pdb文件,则不会提供行号。
将您的pdb文件与DLL一起复制以获取更多信息。Oh!没想到这个。即使我没有在调试模式下运行,它也能工作吗?是的,只要你有生成的pdb文件(这是默认的)哦!没想到这个。即使我没有在调试模式下运行,它也能工作吗?是的,只要您的构建生成了pdb文件(这是默认设置)