前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置元素customErrors[通俗易懂]

配置元素customErrors[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-13 10:21:51
1.4K0
发布2022-09-13 10:21:51
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

 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、位置

代码语言:javascript
复制
 customerErrors -> configuration-> system.web  //该元素放于<system.web>下的<configuration>节点下

3、子元素

元素

说明

error

指定给定 HTTP 状态代码的自定义错误页。 可选的元素。 错误标记可以出现多次。子标记的每一次出现均定义一个自定义错误条件。

4、配置示例:

代码语言:javascript
复制
<configuration>
  <system.web>
    <customErrors defaultRedirect="defaultError.htm"  //发生错误时,重定向到defaultError.htm
                  mode="RemoteOnly">           //仅仅对本地用户显示详细错误信息
      <error statusCode="500"               //针对500错误,跳转到500Error.htm
             redirect="500Error.htm"/>
    </customErrors>
  </system.web>
</configuration>

  5、配置节处理程序

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

代码语言:javascript
复制
 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 继承。)

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

代码语言:javascript
复制
        public ActionResult 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

            return View();
        }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160176.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、customErrors 元素
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档