一般地,网站出现异常后,我们会通过设置web.config的方法来实现友好页的显示,这个方法比较常用,但捕捉的信息不是很具体,在程序测试阶段,我们可以通过global.asax来实现友好的,详细的异常信息的显示,下面来看一下。
WEB.CONFIG里的实现:
<customErrors mode="On"> <error statusCode="404" redirect="/error/index404"/> <error statusCode="500" redirect="/error/inde500"/> </customErrors>-
而这种方式不能把具体出错的信息显示出来,这在网站运营阶段是可以接受的,但在网站测试阶段是不可以的,下面看看我的global.asax方法:
protected void Application_Error(object sender, EventArgs e) { Exception ex = this.Context.Server.GetLastError(); if (ex != null) { StringBuilder sb = new StringBuilder(); sb.Append("<b>系统出现如下错误:</b><br/><br/>"); sb.Append("<b>发生时间:</b> " + DateTime.Now.ToString() + "<br/><br/>"); sb.Append("<b>错误描述:</b> " + ex.Message.Replace("\r\n", "") + "<br/><br/>"); sb.Append("<b>错误对象:</b> " + ex.Source + "<br/><br/>"); sb.Append("<b>错误页面:</b> " + HttpContext.Current.Request.Url + "<br/><br/>"); sb.Append("<b>浏览器IE:</b> " + HttpContext.Current.Request.UserAgent + "<br/><br/>"); sb.Append("<b>服务器IP:</b> " + HttpContext.Current.Request.ServerVariables.Get("Local_Addr").ToString() + "<br/><br/>"); sb.Append("<b>方法名称:</b> " + ex.TargetSite.ToString() + "<br/><br/>"); sb.Append("<b>C#类名称:</b> " + ex.TargetSite.DeclaringType.ToString() + "<br/><br/>"); sb.Append("<b>成员变量:</b> " + ex.TargetSite.MemberType.ToString() + "<br/><br/>"); Server.ClearError(); VCommons.Http.CookieHelper.Write("Http_Errors", VCommons.Utils.UrlEncode(sb.ToString())); System.Web.HttpContext.Current.Response.Redirect("/Error/Index"); } }
Error下的Index内容如下:
public ActionResult Index(string message) { ViewBag.Message = VCommons.Utils.UrlDecode(VCommons.Http.CookieHelper.Read("Http_Errors")); VCommons.Http.CookieHelper.Remove("Http_Errors"); return View(); }
<div style="border: 2px solid #ddd; padding: 5px; margin: 5px;"> <h3><span style="color: Red">错误信息详细内容</span></h3> <p style="padding: 5px; margin: 5px;font-size:12px;">@Html.Raw(ViewBag.Message)</p> </div>
这种方式是通过cookies来记录异常消息的,显示完之后立即清除,看一下效果:
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" alt="" />