#region 捕获异常
/// <summary>
/// 出错处理:写日志,导航到公共出错页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Error(object sender, EventArgs e)
{
if (Server.GetLastError() == null) return;
Exception ex = Server.GetLastError().GetBaseException();
string error = this.DealException(ex);
LogHelper.LogInfo(error);
if (ex.InnerException != null)
{
error = this.DealException(ex);
LogHelper.LogInfo("异常捕获时间:" + DateTime.Now.ToString() + "\n" + error);
}
this.Server.ClearError();
this.Response.Redirect("UserLogin2.aspx");
}
/// <summary>
/// 处理异常,用来将主要异常信息写入文本日志
/// </summary>
/// <param name="ex"></param>
/// <returns></returns>
private string DealException(Exception ex)
{
this.Application["StackTrace"] = ex.StackTrace;
this.Application["MessageError"] = ex.Message;
this.Application["SourceError"] = ex.Source;
this.Application["TargetSite"] = ex.TargetSite.ToString();
string error = string.Format("URl:{0}\n引发异常的方法:{1}\n错误信息:{2}\n错误堆栈:{3}\n",
this.Request.RawUrl, ex.TargetSite, ex.Message, ex.StackTrace);
return error;
}
#endregion