全球.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 ()
您可以像这样获得当前请求的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;
}
}