Global.asax 文件之 Application_Error

 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("\r\n" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") + "【异常】:" + exception.Message);
22                 str.Append("\r\n请求地址:" + Request.Url.ToString());
23                 str.Append("\r\n浏览器:" + Request.Browser.Browser.ToString());
24                 str.Append("\r\n浏览器版本:" + Request.Browser.MajorVersion.ToString());
25                 str.Append("\r\n\t操作系统:" + Request.Browser.Platform.ToString()); 
26                 str.Append("\r\n错误源:" + exception.Source);
27                 str.Append("\r\n异常方法:" + exception.TargetSite);
28                 str.Append("\r\n堆栈信息:" + exception.StackTrace);
29                 str.Append("\r\n--------------------------------------------------------------------------------------------------");
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         }

 

posted @ 2016-04-07 16:29  腾冲  阅读(369)  评论(0编辑  收藏  举报