2013-04-05 40 views
17

Tôi có mã này:Global.asax - Application_Error - Làm cách nào để lấy dữ liệu Trang?

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

Đây là phần lớn mã của tôi. Trong một số ít trường hợp, tôi không có đủ thông tin. Tôi không biết trang ngoại lệ có nguồn gốc từ trang nào.

Làm cách nào tôi có thể nhận được bất kỳ loại thông tin nào liên quan đến trang mà ngoại lệ bắt nguồn từ?

Dưới đây là một ví dụ về thông điệp ngắn:

chiều dài không hợp lệ cho một char mảng Base-64.

tại System.Convert.FromBase64String (String s) tại System.Web.UI.ObjectStateFormatter.Deserialize (String inputString) tại System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize (String serializedState) tại System.Web.UI.Util.DeserializeWithAssert (IStateFormatter formatter, Chuỗi serializedState) tại System.Web.UI.HiddenFieldPageStatePersister.Load()

Trả lời

23

Bạn có thể nhận URL và trang yêu cầu hiện tại của như thế này:

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; 
    } 
} 
Các vấn đề liên quan