Asp.net Web.Config 配置元素customErrors

摘要:
ElementInformation获取包含ConfigurationElement对象的不可自定义的信息和功能的ElementInformation对象。

Asp.net配置文件的配置方式,其实在MSDN里面是写得最清楚的了。可惜之前一直未曾了解到MSDN的强大。

先贴个地址:http://msdn.microsoft.com/zh-cn/library/dayb112d(v=vs.80).aspx,然后逐个分析。我希望自己能够从头到尾认真学完这系列东西。为了不至于让自己太早放弃,我决定从自己用过的配置文件学起,然后逐渐接触那些比较生疏,和少用的。

一、customErrors 元素
属性说明

defaultRedirect

指定出错时将浏览器定向到的默认 URL。如果未指定该属性,则显示一般性错误。

可选的属性。

URL 可以是绝对的(如www.contoso.com/ErrorPage.htm)或相对的。相对 URL(如/ErrorPage.htm)是相对于为该属性指定 URL 的 Web.config 文件,而不是相对于发生错误的网页。以字符 (~) 开头的 URL(如~/ErrorPage.htm)表示指定的 URL 是相对于应用程序的根路径。

mode

指定是启用或禁用自定义错误,还是仅向远程客户端显示自定义错误。

必选的属性。

可选值以及说明:

On       指定启用自定义错误。如果未指定defaultRedirect,用户将看到一般性错误。

Off       指定禁用自定义错误。这允许显示标准的详细错误。

RemoteOnly  指定仅向远程客户端显示自定义错误并且向本地主机显示 ASP.NET 错误。这是默认值。

默认值为RemoteOnly。

2、位置

  customerErrors -> configuration-> system.web  //该元素放于<system.web>下的<configuration>节点下

3、子元素

元素说明

error

指定给定 HTTP 状态代码的自定义错误页。

可选的元素。

错误标记可以出现多次。子标记的每一次出现均定义一个自定义错误条件。

4、配置示例:

<configuration>
  <system.web>
    <customErrors defaultRedirect="defaultError.htm"  //发生错误时,重定向到defaultError.htmmode="RemoteOnly">           //仅仅对本地用户显示详细错误信息
      <error statusCode="500"               //针对500错误,跳转到500Error.htmredirect="500Error.htm"/>
    </customErrors>
  </system.web>
</configuration>

5、配置节处理程序

该配置节点对应Asp.net中的配置节类为:

  System.Web.Configuration.CustomErrorsSection

来看看在类的主要公共属性:

属性说明
DefaultRedirect获取或设置重定向的默认 URL。
ElementInformation获取包含ConfigurationElement对象的不可自定义的信息和功能的ElementInformation对象。 (从ConfigurationElement继承。)
Errors获取CustomError对象的集合,也就是其下面的<error>配置节。
LockAllAttributesExcept获取被锁定的属性的集合。 (从ConfigurationElement继承。)
LockAllElementsExcept获取被锁定的元素的集合。 (从ConfigurationElement继承。)
LockAttributes获取被锁定的属性的集合。 (从ConfigurationElement继承。)
LockElements获取被锁定的元素的集合。 (从ConfigurationElement继承。)
LockItem获取或设置一个值,该值指示是否已锁定该元素。 (从ConfigurationElement继承。)
Mode获取或设置错误显示模式。
SectionInformation获取一个SectionInformation对象,该对象包含ConfigurationSection对象的不可自定义的信息和功能。 (从ConfigurationSection继承。)

下面以程序示例如何在程序中读取和设置配置节:

        publicActionResult Index()
        {
            //<customErrors defaultRedirect="defaultError.htm" mode="Off">
            //<error statusCode="500" redirect="500.htm"/>
            //</customErrors>

            //CustomErrorsSection customErrorsSection = ConfigurationManager.GetSection("system.web/customErrors") as CustomErrorsSection;    //这样获取也可以,但是要注意里面的路径的写法
            CustomErrorsSection CES = (CustomErrorsSection)WebConfigurationManager.OpenWebConfiguration("/").GetSection("system.web/customErrors");
            Response.Write(CES.DefaultRedirect);    //输出 defaultError.htm
            CustomErrorsMode mode =CES.Mode;
            Response.Write(mode);       //输出 Off
CustomError CE = CES.Errors[0]; //获取其下的第一个子<error>节点
            Response.Write(CE.StatusCode);  //输出 500
            Response.Write(CE.Redirect);    //输出 500.htm
ElementInformation EleInfo = CES.ElementInformation;    //元素信息
            Response.Write(EleInfo.LineNumber);     //输出 14 恰好是customErrors所在Web.Config的行号
System.Configuration.Configuration c = CES.CurrentConfiguration;   //当前Configuration对象的引用
            Response.Write(CES.IsReadOnly());     //输出 False 指示该节点是否为只读
            Response.Write(CES.LockItem);         //输出 False 是否已锁定该元素
            Response.Write(CES.RedirectMode);     //输出 ResponseRedirect 一个枚举  将用户重定向到自定义错误页面时,是否应该更改请求的URL
SectionInformation SI =CES.SectionInformation;
            Response.Write(SI.Name);     //输出 customErrors

            returnView();
        }

免责声明:文章转载自《Asp.net Web.Config 配置元素customErrors》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇postgresql 下的三表连查SVN服务器的搭建和使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

6.requests编写企查查爬虫

(为编写完善能拿下来数据) 企查查代码数据如下: 1 #encoding:utf-8 2 import requests 3 from lxml import etree 4 import random 5 import re 6 #目标采集地址 7 base_url1='http://m.qichacha.com' 8 base_url=...

python 网络爬虫(二)

一、编写第一个网络爬虫 为了抓取网站,我们需要下载含有感兴趣的网页,该过程一般被称为爬取(crawling)。爬取一个网站有多种方法,而选择哪种方法更加合适,则取决于目标网站的结构。 首先探讨如何安全的下载网页,让后介绍3中爬去网站的常见方法: -- 爬取网站地图; -- 遍历每个网页的数据库 ID; -- 跟踪网页链接; 1、下载网页 要想爬取网页,我们...

接口自动化之接口整理(抓包)

  陆续在几个公司都有接触过接口测试,每个公司的接口测试需求都差不多。但是,项目的大小会影响接口测试任务的简繁。   涉及到TCP协议的接口,也涉及到http协议的接口。   前段时间,刚接到一个走HTTP协议的接口测试需求。   开发提供过来的接口如下: test:  1. get_list  a. url - subject_id / complian...

Apache环境下强制http跳转至https的配置总结

一. 简单实例介绍一般来说,apache配置好http和https后,如果想要做http强转到https,需要设置url重定向规则,大致需要下面几个步骤即可完成配置: 1)在httpd.conf文件里使下面模块生效 [root@back ~]# cat /usr/local/apache/conf/httpd.conf ..... LoadModule s...

maven和gradle的全局阿里云镜像代理

Maven:~/.m2/settings.xml <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...

Ext.js弹窗上传文件

1.构建上传组件 var fileUpload = new Ext.FormPanel({ id:'fileUpload', frame:true, fileUpload:true, items:[{ xtype: 'filefield',...