Подтвердить что ты не робот

Global.asax - Application_Error - Как я могу получить данные страницы?

У меня есть этот код:

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 char.

в System.Convert.FromBase64String (String s) в System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) в System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) в System.Web.UI.Util.DeserializeWithAssert(формат форматирования IStateFormatter, String serializedState) при System.Web.UI.HiddenFieldPageStatePersister.Load()

4b9b3361

Ответ 1

Вы можете получить текущий 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;
    }
}