Global.asax - Application_Error - How can I get Page data?

20,235

You can get the current request's URL and page like this :

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;
    }
}
Share:
20,235
Ash
Author by

Ash

I am a software developer asp asp.net c# vb, vb.net MSSQL html css ajax 3.48.1.11.30

Updated on July 05, 2022

Comments

  • Ash
    Ash almost 2 years

    I have this code:

    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();
    }
    

    This is (most of) my code. In a small percentage of cases, I don't get enough information though. I don't know what page the exception originated from.

    How can I get any kind of information related to the page that the exception originated from?

    Below is an example of the shortest message:

    Invalid length for a Base-64 char array.

    at System.Convert.FromBase64String(String s) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) at System.Web.UI.HiddenFieldPageStatePersister.Load()