发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
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来记录异常消息的,显示完之后立即清除,看一下效果:
回到目录
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
global.asax介绍
global.asax是一个文本文件,它提供全局可用代码。这些代码包括应用程序的事件处理程序以及会话事件、方法和静态变量。有时该文件也被称为应用程序文件。
编写global.asax
Sub Application_Start(Sender As Object, E As EventArgs)Application.</script><body><br><br><br><...
老年修身二十点
<br>这二十点献给老年的朋友们,希望大家记住这些点呦!
发送错误报告errorlogs的函数
Java 7中自动关闭流和catch多个异常
Java版的实现JavaScript中的eval()函数
3.动态加载刚刚创建编译的Java二进制码,编译好的Java二进制码不是在磁盘上,而是放在内存中,并定义自己的类加载器,负责加载内存中的class文件。
采用HTTP协议上传文件实现(java)
73 * @param table 74 * @param paraName 75 * @param paraValue 76 */ 77 private static void addElement(Hashtable table, String paraName, 78 Object paraValu...
使用Global.asax实现ASP.Net的URL重写
global.asax与自定义模块的区别
global.asax与自定义模块的区别。模块的所有功能都可以在应用程序专用的global.asax文件中实现。然而,反之则不然,因为global.asax提供了模块所没有的其他几种事件和特征,诸如会话开始事件,或者能够...
微信扫码,在手机上查看选中内容