打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
EF架构~在global.asax里写了一个异常跳转,不错!

EF架构~在global.asax里写了一个异常跳转,不错!

 

回到目录 一般地,网站出现异常后,我们会通过设置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来记录异常消息的,显示完之后立即清除,看一下效果: 

  回到目录

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
global.asax介绍
编写global.asax
老年修身二十点
发送错误报告errorlogs的函数
Java 7中自动关闭流和catch多个异常
Java版的实现JavaScript中的eval()函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服