ASP.NET自定义错误页面
ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件、Application_Error 事件以及应用程序配置文件 (Web.config)。 如果您不调用 Server.ClearError 或者捕获 Page_Error 或 Application_Error 事件中的错误,则将根据 Web.config 文件的 <customErrors> 部分中的设置处理错误。在 <customErrors> 部分,可将重定向页指定为默认的错误页 (defaultRedirect) 或者根据引发的 HTTP 错误代码指定特定页。您可使用此方法自定义用户收到的错误信息。 asp.net自定义错误处理页面方法一 1、添加Web.config, < system.web>< /system.web>中添加< customErrors mode="On" defaultRedirect="ApplicationErroy.aspx" >< /customErrors>节点, 2、添加错误处理页面:ApplicationErroy.aspx调用下面的方法: 这种方法不能完整地显示错误信息; asp.net自定义错误处理页面方法二 1、添加Web.config, < system.web>< /system.web>中添加< customErrors mode="On" defaultRedirect="ApplicationErroy.aspx" >< /customErrors>节点, 2、添加Global.asax文件,找到Application_Error事件,加入以下代码: //这是添加了一个全局应用程序类 在Application_Error事件中处理错误页面 和web.config没有关系 即使没有web.config 也是可以定位到错误页面 void Application_Error(object sender, EventArgs e) { //在出现未处理的错误时运行的代码 Exception erroy = Server.GetLastError(); string err = "出错页面是:" + Request.Url.ToString() + "</br>"; err += "异常信息:" + erroy.Message + "</br>"; err += "Source:" + erroy.Source + "</br>"; err += "StackTrace:" + erroy.StackTrace + "</br>"; //清除前一个异常 Server.ClearError(); //此处理用Session["ProError"]出错。所以用 Application["ProError"] Application["erroy"] = err; //此处不是page中,不能用Response.Redirect("../frmSysError.aspx"); System.Web.HttpContext.Current.Response.Redirect(HttpContext.Current.Request.ApplicationPath +"/ApplicationErroy.aspx"); } 2、添加错误处理页面:ApplicationErroy.aspx 加入以下代码; protected void Page_Load(object sender, EventArgs e) { //显示程序中的错误码 if (!IsPostBack) { //显示程序中的错误码 if (Application["erroy"] != null) { Response.Write(Application["erroy"].ToString()); } } } 这种方法能完整地显示错误信息, 最好的办法还是两种方法一起用最好! 另:web.config中也可以把 <customErrors mode="On" defaultRedirect="ApplicationErroy.aspx"> 添加进去 http错误代码含义: "403" : Forbidden http错误代码含义大全详解 http://hi.baidu.com/ren_long_/blog/item/033563657a00befaf6365450.html 方法三Page_Error事件 (转) ASP.NET 提供了在运行 ASP.NET 应用程序时可能出现的错误的若干处理和响应级别。ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件、Application_Error 事件以及应用程序配置文件 (Web.config)。 本文演示如何在 ASP.NET 应用程序中使用这些新功能。尽管本文由于与 ASP.NET 直接相关而介绍了如何提供自定义错误页和一般错误报告,但是它并不介绍其他错误处理方法,如 try-catch-finally 块和公共语言运行库 (CLR) 异常系统。 如何使用 Page_Error 事件 备注:此示例在浏览器中显示详细的错误信息,提供此示例只是为了进行说明。向应用程序的最终用户显示详细信息(尤其是该应用程序在 Internet 上运行时)一定要小心。更适当的做法是向用户显示一条消息,告知已发生错误,然后将具体的错误详细信息记录在事件日志中。 本示例引发一个强迫错误发生在 Page_Load 事件中的空异常。按照以下步骤可创建将测试 Page_Error 事件的初始页。 1. 按照以下步骤将名为 PageEvent.aspx 的新文件添加到项目中: a. 打开 Microsoft Visual Studio .NET。 2. 将以下代码添加到 PageEvent.aspx 中: public void Page_Error(object sender,EventArgs e) 3. 从文件菜单中,单击保存 PageEvent.aspx。 ( (备注:您可能注意到代码发出对 Server.ClearError 的调用。这将防止错误继续到要被处理的 Application_Error 事件中。 另外,在http://blog.csdn.net/goodshot/article/details/8718563中提到:Application_Error的处理优先级高于Web.config里面配置的自定义错误处理页面,你在Application_Error里面已经把所有该做的都做了,然后还把Error给Clear掉了,此时已经不会再触发Web.config里面配置的自动跳转了! 因此,"Page_Error"先于“Application_Error”先于“Web.config里面CustomError的配置”) ) 此外,您还应记下 @ Page 指令中的 Inherits 属性。如果已经设置 Inherits,则必须首先生成项目,然后再浏览到该页。如果不首先生成项目,将看到下面的错误信息: 'Project.PageEvent' is not a valid type 如何使用 Application_Error 事件 下面的示例基于前面的 Page_Error 事件代码示例,如果 Page_Load 事件中的错误未在 Page_Error 事件中捕获,将引发异常。Application_Error 事件在应用程序的 Global.asax 文件中进行指定。为简单起见,本节中的步骤创建一个要在其中引发异常的新页,捕获 Global.asax 文件的 Application_Error 事件中的错误,并将该错误写入事件日志中。下面的步骤演示如何使用 Application_Error 事件: 1. 将名为 AppEvent.aspx 的新文件添加到项目中: 3. 从文件菜单中,单击保存 AppEvent.aspx。 将以下代码添加到 Global.asax 文件中: protected void Application_Error(object sender, EventArgs e) 5. 保存 Global.asax 文件。 如何使用 Web.config 文件 如果发生在应用程序以前的任一级别都未捕获到的错误,则显示这个自定义页。本节演示如何修改 Global.asax 文件,以便从不调用 Server.ClearError。因此,错误在作为捕获错误的最后一点的 Web.config 文件中进行处理。 1. 从上一个示例中打开 Global.asax 文件。 protected void Application_Error(object sender, EventArgs e) 4. 将以下代码添加到 <customErrors> 部分,以便将用户重定向到自定义页: 6. 若要测试该代码,请保存这些文件,生成项目,然后在浏览器中查看 AppEvent.aspx。请注意,在引发错误时,您将被重定向到 ErrorStatus.htm 页。 请注意,<customErrors> 部分包括设置为 On 的 mode 属性。mode 属性用于控制错误重定向发生的方式。例如,如果您正开发应用程序,则很可能希望查看实际的 ASP.NET 错误信息,并且不希望被重定向到更用户友好的错误页。mode 属性包括以下设置: ? On:未被处理的异常将用户重定向到指定的 defaultRedirect 页。此模式主要用于生产。 |
ASP.NET自定义错误页面相关推荐
- ASP.NET自定义错误页面(转)
ASP.NET自定义错误页面(转) ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件.Application_Error 事件以及应用程序配置文件 (Web ...
- ASP.NET自定义错误页面,分离配置信息,多环境发布
今天主要说三个内容,都是和ASP.NET有关的内容. 第一个关于自定义错误的,就是在网站出现404或者500的错误,如何给用户显示一个友好的界面. 第二个是分离配置文件web.config,如果配置信 ...
- ASP.NET Core中显示自定义错误页面-增强版
之前的博文 ASP.NET Core中显示自定义错误页面 中的方法是在项目中硬编码实现的,当有多个项目时,就会造成不同项目之间的重复代码,不可取. 在这篇博文中改用middleware实现,并且放在独 ...
- [转载]针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结
针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结 汪宇杰 2014-1-11 星期六 02:31 455 Reads 1 Comments 自定义错误页面和异常记录是个很古老的话题了, ...
- react 错误边界_React with GraphQL和错误边界中的自定义错误页面
react 错误边界 by Abi Noda 通过Abi Noda React with GraphQL和错误边界中的自定义错误页面 (Custom error pages in React with ...
- SpringBoot自定义错误页面
Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已经计划在后续的项目开发中使用它.它已经帮我们做了90%的工作,剩下10%的工作需要我们自己去 ...
- 017_SpringBoot异常处理方式-自定义错误页面
1. 使用maven构建SpringBoot的名叫spring-boot-exception1项目 2. pom.xml <project xmlns="http://maven.ap ...
- ASP.NET配置错误页面浅析
ASP.NET配置错误页面在网站的运行过程中可能会面临很多问题,例如服务器出错,用户请求的页面不存在,程序配置错误等等一系列的问题.在用户请求浏览网页碰到这些的时候会出现一些系统默认的错误页面,这样对 ...
- SpringBoot异常处理-自定义错误页面
自定义错误页面 SpringBoot 默认的处理异常的机制:SpringBoot 默认的已经提供了一套处理异常的机制. 一旦程序中出现了异常SpringBoot 会像/error 的url 发送请求. ...
最新文章
- JS小数位保留两位小数
- python 生成code128c
- JAVA中equals空_Java中为什么查询空字符串跟判断是否为null的时候可以不用equals?...(亲测)
- 64位系统使用Access 数据库文件的彻底解决方法
- 每日一题(易错):哪些REPEAT_INTERVAL参数能够实现每30分钟运行job
- 【侯捷】C++内存管理机制
- HTML期末大作业~ 仿新浪微博个人主页html网站模板4个页面(HTML+CSS+JavaScript)
- 机械优化设计c语言鲍威尔法,机械优化设计鲍威尔法.docx
- 小米笔记本用鸿蒙系统,小米笔记本Pro15.6GTX版评测 如果你主力用它来玩游戏显然不是明智之选...
- Ubuntu系统上的ImageJ安装和卸载方法
- LED点阵基础讲解及字符显示
- OpenCV入门笔记-更新篇
- 小红书html布局自适应,Flutter实现马蜂窝小红书自适应高度轮播图
- 聚宽JQData说明书
- qq音乐mp3解析php源码,QQ音乐API
- csapp之lab:shell lab
- 用Python教训盗号骗子
- 使用iterm2查看日志时屏幕持续滚动将老内容冲掉的设置
- 最新小旋风蜘蛛池X6.21解密版+绕过授权带教程
- CRM代表什么?需要CRM软件的7个理由
热门文章
- ubuntu修改默认系统启动项
- 常用的一些页面操作 js jsp check
- NSThread详解
- (转)ScriptManager.RegisterStartupScript方法和Page.ClientScript.RegisterStartupScript() 方法...
- 搭建VS2008下QT开发环境
- iPhone:创建、连接和使用静态库(过时了,仅参考)
- Google Maps API 进级:在信息窗口GInfoWindow中嵌入Flash动画
- [转] 外企面试官最爱提的问题 TOP10
- 基于vue2+nuxt构建的高仿饿了么(2018版)
- 容器编排技术 -- Kubernetes Volume