全球.asax - Application_Error -我如何获得页面数据

本文关键字:何获得 数据 Error asax Application 全球 | 更新日期: 2023-09-27 18:07:30

我有这样的代码:

using System.Configuration;
void Application_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError().GetBaseException();
    string ErrorMessage = ex.Message;
    string StackTrace = ex.StackTrace;
    string ExceptionType = ex.GetType().FullName;
    string UserId = Getloggedinuser();
    string WebErrorSendEmail =
       ConfigurationManager.AppSettings["WebErrorSendEmail"];
    // save the exception in DB
    LogStuffInDbAndSendEmailFromDb();
}

这是(大部分)我的代码。在少数情况下,我没有得到足够的信息。我不知道这个异常来自哪个页面。

我如何获得与异常产生的页面相关的任何类型的信息?

下面是一个最短消息的例子:

Base-64字符数组的长度无效。

在System.Convert

。FromBase64String(字符串s) atSystem.Web.UI.ObjectStateFormatter。反序列化(String inputString)System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(字符串serializedState)System.Web.UI.Util。DeserializeWithAssert (IStateFormatter格式化程序,字符串serializedState)System.Web.UI.HiddenFieldPageStatePersister.Load ()

全球.asax - Application_Error -我如何获得页面数据

您可以像这样获得当前请求的URL和页面:

void Application_Error(object sender, EventArgs e)
{
    // Code that runs when an unhandled error occurs
    if (HttpContext.Current != null)
    {
        var url = HttpContext.Current.Request.Url;
        var page = HttpContext.Current.Handler as System.Web.UI.Page;
    }
}