4

我的 Global.asax.cs 中有这个 Application_Error 事件,它将在我的应用程序中发生任何未处理的异常。我能够收到错误消息。我还试图获得的是发生异常的类名和方法名,以便更容易追踪异常的原因和原因。请帮忙。

全球.asax.cs

protected void Application_Error(object sender, EventArgs e)
    {
        var errMsg = Server.GetLastError().Message;
        if (string.IsNullOrWhiteSpace(errMsg)) return;
        //Get Class name and method name
        //ErrorLog.SaveLog(errMsg, Classname, Methodname);
        Context.ClearError();
    }
4

2 回答 2

3

您可以使用 StackTrace 在调用堆栈中找到此信息,请参阅http://msdn.microsoft.com/en-us/library/system.diagnostics.stackframe.aspx中的示例。

于 2013-03-20T08:30:02.237 回答
2

最简单的方法是记录:

Server.GetLastError().ToString()

这包括异常和任何内部异常的错误消息和堆栈跟踪,在某些情况下,还包括其他有用信息 (*)。

请注意,Server.GetLastError().StackTrace这只会给您外部异常的堆栈跟踪,不太有用。

(*) “其他有用信息”是指任何异常派生类都可以覆盖ToString以添加特定于该异常类型的附加信息。例如,SqlException覆盖ToString以附加ClientConnectionId.

于 2013-03-20T09:39:02.620 回答