配置元素customErrors[通俗易懂]

配置元素customErrors[通俗易懂] Asp.net配置文件的配置方式,其实在MSDN里面是写得最清楚的了。可惜之前一直未曾了解到MSDN的强大。  先贴个地址:http://msdn.microsoft.com/zh-cn/library/dayb112d(v=vs.80).aspx,然后逐个分析。我希望自己能够从头到尾认真学完这系列东西。为了不至于让自己太早放弃,我决定从自己用过的配置文件学起,然后逐渐接触那些比较生疏,和少…

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

 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.htm
                  mode="RemoteOnly">           //仅仅对本地用户显示详细错误信息
      <error statusCode="500"               //针对500错误,跳转到500Error.htm
             redirect="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 继承。)

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

        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.net/160176.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Canny边缘检测

    Canny边缘检测Canny边缘检测是一种非常流行的边缘检测算法,是JohnCanny在1986年提出的。它是一个多阶段的算法,即由多个步骤构成。1.图像降噪2.计算图像梯度3.非极大值抑制4.阈值筛选我们就事后诸葛亮,分析下这个步骤的缘由。首先,图像降噪。我们知道梯度算子可以用于增强图像,本质上是通过增强边缘轮廓来实现的,也就是说是可以检测到边缘的。但是,它们受噪声的影响都很大。那么,我…

    2022年5月30日
    33
  • Python requests post 请求报错:415 Unsupported Media Type

    Python requests post 请求报错:415 Unsupported Media Type本文仅供学习交流使用,如侵立删!联系方式及demo下载见文末requestspost请求报错:415UnsupportedMediaType在使用response.post发送json数据时,出现如题所示错误,是因为User-Agent被服务器设置拒绝请求了解决方法:’content-type’:’application/json’headers={‘User-Agent’:’Dalvik/2.1.0(Linux;U;Android6.0.1;Nexus5

    2022年6月12日
    89
  • pycharm怎么配置tensorflow环境_pycharm环境搭建

    pycharm怎么配置tensorflow环境_pycharm环境搭建Pycharm安装并搭建Tensorflow开发环境下载并安装pycharm1.下载2.pycharm配置python环境安装tensorflow1.输入清华仓库镜像2.创建tensorflow环境3.启动tensorflow环境4.安装cpu版本的TensorFlow5.测试TensorFlowPycharm中配置TensorFlow环境在操作之前先安装好python环境,我是安装的Anaconda,Anaconda下载安装教程可参考:https://blog.csdn.net/Chen_Meng_

    2022年8月26日
    3
  • 粘包现象_光柱现象

    粘包现象_光柱现象粘包现象当多条消息发送时接受变成了一条或者出现接收不准确的情况粘包现象会发生在发送端两条消息间隔时间短,长度短就会把两条消息在发送之前就拼在一起节省每一次发送消息回复的网络资源粘包现象会发生在接收端多条消息发送到缓存端,但没有被及时接收,或者接收的长度不足一次发送的长度数据与数据之间没有边界本质:发送的每一条数据之间没有边界–例:importsocketsk=…

    2022年8月11日
    7
  • 手机版mt4平台下载下载手机版mt4_手机mt4平台下载安卓

    手机版mt4平台下载下载手机版mt4_手机mt4平台下载安卓MetaTrader4(缩写MT4)是由俄罗斯迈达克软件公司(英文名称MetaQuotesSoftwareCorp)发布的一款交易软件,可同时在电脑端和手机端使用。但是,正版手机端mt4一般要从谷歌商店下载,而GooglePlay的下载地址经常打不开。本人使用mtr软件多年,在使用方面有一些经验,现将2020年版手机mt4下载地址分享给各位网友,愿您交易如索罗斯一般行如流水!mt4下载地址:https://t00y.com/file/29212124-458672692提取码:pj265(

    2022年8月15日
    2
  • ssl原理及应用_ssl的理解

    ssl原理及应用_ssl的理解今天学习网络通信,看到使用ssl(SecureSocketsLayer)进行加密,由于对ssl只是有些概念上的了解,对于具体应用原理、过程和如何使用不慎了解,于是学习了一番,总结如下:1.为什么要使用ssl?确保数据传输的安全性2.用ssl加密传输的实际过程?建立连接时使用非对称加密,而连接完成后在传输数据时使用对称加密(速度快)3.ssl加密方式?有两种方式:单

    2025年6月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号