Global.asax文件解析:http://www.cnblogs.com/tengchong/p/5364099.html
Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法。
Application_Error:当应用程序中遇到一个未处理的异常时,该事件被触发。
下面的一段代码是将相应的错误信息记录下来写到日志文件之中,然后跳转到报错统一报错界面
1 protected void Application_Error(object sender, EventArgs e) 2 { 3 var exception = Server.GetLastError().GetBaseException(); 4 int statusCode = (int)HttpStatusCode.InternalServerError; 5 if (exception is HttpException) 6 { 7 statusCode = new HttpException(null, exception).GetHttpCode(); 8 } 9 else if (exception is UnauthorizedAccessException) 10 { 11 // to prevent login prompt in IIS 12 // which will appear when returning 401. 13 statusCode = (int)HttpStatusCode.Forbidden; 14 } 15 16 if (statusCode != 404) 17 { 18 string today = DateTime.Today.ToString("yyyy-MM-dd"); 19 20 StringBuilder str = new StringBuilder(); 21 str.Append(" " + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") + "【异常】:" + exception.Message); 22 str.Append(" 请求地址:" + Request.Url.ToString()); 23 str.Append(" 浏览器:" + Request.Browser.Browser.ToString()); 24 str.Append(" 浏览器版本:" + Request.Browser.MajorVersion.ToString()); 25 str.Append(" 操作系统:" + Request.Browser.Platform.ToString()); 26 str.Append(" 错误源:" + exception.Source); 27 str.Append(" 异常方法:" + exception.TargetSite); 28 str.Append(" 堆栈信息:" + exception.StackTrace); 29 str.Append(" --------------------------------------------------------------------------------------------------"); 30 31 32 System.IO.File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory 33 + "/log/ApplicationError" + today + ".txt", str.ToString()); 34 //处理完及时清理异常 35 Server.ClearError(); 36 //跳转至出错页面 37 Response.Redirect("~/error.html"); 38 39 40 } 41 }