ASP.NET应用程序的配置信息都存放于Web.config配置文件中,Web.config配置文件是基于XML格式的文件类型,由于XML文件的可伸缩性,使得ASP.NET应用配置变得灵活、高效、容易实现。同时,ASP.NET不允许外部用户直接通过URL请求访问Web.config,以提高应用程序的安全性。

1.Web.config配置文件的优点

Web.config配置文件使得ASP.NET应用程序的配置变得灵活、高效和容易实现,同时Web.config配置文件还为ASP.NET应用提供了可扩展的配置,使得应用程序能够自定义配置,不仅如此,Web.config配置文件还包括以下优点。

q 配置设置易读性:由于Web.config配置文件是基于XML文件类型,所有的配置信息都存放在XML文本文件中,可以使用文本编辑器或者XML编辑器直接修改和设置相应配置节,相比之下,也可以使用记事本进行快速配置而无需担心文件类型。

q 更新的即时性:在Web.config配置文件中某些配置节被更改后,无需重启Web应用程序就可以自动更新ASP.NET应用程序配置。但是在更改有些特定的配置节时,Web应用程序会自动保存设置并重启。

q 本地服务器访问:在更改了Web.config配置文件后,ASP.NET应用程序可以自动探测到Web.config配置文件中的变化,然后创建一个新的应用程序实例。当浏览者访问ASP.NET应用时,会被重定向到新的应用程序。

q 安全性:由于Web.config配置文件通常存储的是ASP.NET应用程序的配置,所以Web.config配置文件具有较高的安全性,一般的外部用户无法访问和下载Web.config配置文件。当外部用户尝试访问Web.config配置文件时,会导致访问错误。

q 可扩展性:Web.config配置文件具有很强的扩展性,通过Web.config配置文件,开发人员能够自定义配置节,在应用程序中自行使用。

q 保密性:开发人员可以对Web.config配置文件进行加密操作而不会影响到配置文件中的配置信息。虽然Web.config配置文件具有安全性,但是通过下载工具依旧可以进行文件下载,对Web.config配置文件进行加密,可以提高应用程序配置的安全性。

使用Web.config配置文件进行应用程序配置,极大的加强了应用程序的扩展性和灵活性,对于配置文件的更改也能够立即的应用于ASP.NET应用程序中。

2.Web.config配置文件的结构

Web.config配置文件是基于XML文件类型的文件,所以Web.config文件同样包含XML结构中的树形结构。在ASP.NET应用程序中,所有的配置信息都存储在Web.config文件中的“<configuration>”配置节中。在此配置节中,包括配置节处理应用程序声明,以及配置节设置两个部分,其中,对处理应用程序的声明存储在configSections配置节内,示例代码如下所示。

<configSections>

<sectionGroup

name="system.web.extensions"

type="System.Web.Configuration.SystemWebExtensionsSectionGroup,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

<sectionGroup

name="scripting"

type="System.Web.Configuration.ScriptingSectionGroup,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

<section

name="scriptResourceHandler"

type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"

requirePermission="false" allowDefinition="MachineToApplication"/>

<sectionGroup

name="webServices"

type="System.Web.Configuration.ScriptingWebServicesSectionGroup,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

</sectionGroup>

</sectionGroup>

</sectionGroup>

</configSections>

配置节设置区域中的每个配置节都有一个应用程序声明。节处理程序是用来实现ConfigurationSection接口的.NET Framework类。节处理程序生命中包括了配置设置接的名称,以及用来处理该配置节中的应用程序的类名。

配置节设置区域位于配置节处理程序声明区域之后。对配置节的设置还包括子配置节的是配置,这些子配置节同父配置节一起描述一个应用程序的配置,通常情况下这些同父配置节由同一个配置节进行管理,示例代码如下所示。

<pages>

<controls>

<add tagPrefix="asp" namespace="System.Web.UI"

assembly="System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

<add tagPrefix="asp" namespace="System.Web.UI.WebControls"

assembly="System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

</controls>

</pages>

虽然Web.config配置文件是基于XML文件格式的,但是在Web.config配置文件中并不能随意的自行添加配置节或者修改配置节的位置,例如pages配置节就不能存放在configSections配置节之中。在创建Web应用程序时,系统通常会自行创建一个Web.config配置文件在文件中,系统通常已经规定好了Web.config配置文件的结构。

13.2.3  ASP.NET基本配置节

在Web.config配置文件中包括很多的配置节,这些配置节都用来规定ASP.NET应用程序的相应属性。

1.<configuration>:根配置节

所有Web.config的根配置节都存储与<configuration>标记中,在它内部封装了其他的配置节,示例代码如下所示。

<configuration>

<syste.web>

……

</configuration>

2.<configSections>:处理声明配置节

该配置节主要用于自定义的配置节处理程序声明,该配置节由多个“<section>”配置节组成,示例代码如下所示。

<configSections>

<sectionGroup

name="system.web.extensions"

type="System.Web.Configuration.SystemWebExtensionsSectionGroup,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

<sectionGroup name="scripting"

type="System.Web.Configuration.ScriptingSectionGroup,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

<section name="scriptResourceHandler"

type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral,

PublicKeyToken=31BF3856AD364E35"

requirePermission="false" allowDefinition="MachineToApplication"/>

</sectionGroup>

</sectionGroup>

</configSections>

其中<section>配置节包括name和type两种属性,name属性指定配置数据配置节的名称,而type属性指定与name属性相关的配置处理程序类。

3.<appSettings>:用户自定义配置节

“<appSettings>”配置节为开发人员提供ASP.NET应用程序的扩展配置,通过使用“<appSettings>”配置节能够自定义配置文件,示例代码如下所示。

<appSettings>

<add key="Name" value="Guojing"/> //增加自定义配置节

<add key="E-mail" value="soundbbg@live.cn"/>

</appSettings>

上述代码添加了两个自定义配置节,这两个自定义配置节分别为Name和E-mail,用于定义该Web应用程序的开发者的信息,以便在其他页面中使用该配置节。

若需要在页面中使用该配置节,可以使用ConfigurationSettings.appSettings(“key的名称”)方法来获取自定义配置节中的配置值,示例代码如下所示。

protected void Page_Load(object sender, EventArgs e)

{

TextBox1.Text = ConfigurationSettings.AppSettings["name"].ToString(); //获取自定义配置节

}

“<appSettings>”配置节包括两个属性,分别为Key和Value。Key属性指定自定义属性的关键字,以方便在应用程序中使用该配置节,而Value属性则定义该自定义属性的值。

4.<customErrors>:用户错误配置节

该配置节能够指定当出现错误时,系统自动跳转到一个错误发生的页面,同时也能够为应用程序配置是否支持自定义错误。“<customErrors>”配置节包括两种属性,这两种属性分别为mode和defaultRedirect。其中mode包括3种状态,这三种状态分别为On、Off和RemoteOnly。On表示启动自定义错误;Off表示不启动自定义错误;RemoteOnly表示给远程用户显示自定义错误。另外:defaultRedirect属性则配置了当应用程序发生错误时跳转的页面。

“<customErrors>”配置节还包括子配置节“<error>”,该标记用于特定状态的自定义错误页面,子标记“<error>”包括两个属性,分别为statusCode和redirect,其中statusCode用于捕捉发生错误的状态码,而redirect指定发生该错误后跳转的页面,该配置节配置代码如下所示。

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

<error statusCode="403" redirect="NoAccess.htm" />

<error statusCode="404" redirect="FileNotFound.htm" />

</customErrors>

上述代码则在Web.config文件中配置了相应的customErrors信息。当出现404错误时,系统会自行跳转到FileNotFound.htm页面以提示404错误,开发人员能够编写FileNotFound.htm页面进行用户提示。

5.<globalization>:全局编码配置节

“<globalization>”用于配置应用程序的编码类型,ASP.NET应用程序将使用该编码类型分析ASPX等页面,常用的编码类型包括:

q UFT-8:Unicode UTF-8字节编码技术,ASP.NET应用程序默认编码。

q

http://blog.sina.com.cn/s/blog_bb93481d0101h8ax.html

config.xml的更多相关文章

  1. MyBatis2:config.xml文件

    前言 前一篇文章,讲了MyBatis入门,讲到了MyBatis有两个基本的配置文件,一个用来配置环境信息,一个用来写SQL语句.前者我把它命名为config.xml,config.xml的内容是: & ...

  2. MyBatis(2):config.xml文件

    前言 前一篇文章,讲了MyBatis入门,讲到了MyBatis有两个基本的配置文件,一个用来配置环境信息,一个用来写SQL语句.前者我把它命名为config.xml,config.xml的内容是: 1 ...

  3. magento url rewrite using config.xml

    magento url rewrite using config.xml 2012-08-03 14:34:22|  分类: magento|举报|字号 订阅     郁闷了两天啊 http://12 ...

  4. 在Linux下如何用Shell脚本读写XML?现有一个config.xml(转)

    在Linux下如何用Shell脚本读写XML?现有一个config.xml <?xml version="1.0" encoding="UTF-8"?&g ...

  5. Android项目中的config.xml文件 “config.xml”

    Android应用程序需要保存一些配置时,可以将这些配置项放置到values/config.xml文件中. 实例分析: <?xml version="1.0" encodin ...

  6. Cordova项目config.xml添加android权限

    最近在开发cordova项目,安卓APP需要调用照相机和系统相册,在添加安卓权限的时候,总是报错. 以下是部分config.xml代码 <platform name="android& ...

  7. jenkins 实现多用户同时触发任务 + 修改job的config.xml 不重启服务生效

    (后期添加: 这篇博客是在刚研究并发构建时写的,所以方法比较老套,采用的时流水线(pipeline)的方式,实现时通过如果job的用户配置来创建多个新的执行任务的job,并且将执行日志回收到入口job ...

  8. Parsing Failure in config.xml: java.lang.IllegalArgumentException: In production mode, it's not allowed to set a clear text value to the property

    Step1). in your "setDomainEnv.sh" script set the "PRODUCTION_MODE=false" or use ...

  9. config.xml写入和读取

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  10. 升级jenkins之后无法启动 报错Unable to read /var/lib/jenkins/config.xml

    故障记录 点击jenkins升级后再点击回滚到之前版本,jenkins就起不来了. 欲哭无泪,报错如下 hudson.util.HudsonFailedToLoad: org.jvnet.hudson ...

随机推荐

  1. NET Core 3.0 新姿势 将AutoFac替换内置DI

    .NET Core 3.0 和 以往版本不同,替换AutoFac服务的方式有了一定的变化,在尝试着升级项目的时候出现了一些问题. 原来在NET Core 2.1时候,AutoFac返回一个 IServ ...

  2. 05、Linux通配符、转义字符、环境变量

    问题:作为Linux运维人员,我们有时候也会遇到明明一个文件的名称就在嘴边但就是想不起来的情况.如果就记得一个文件的开头几个字母,想遍历查找出所有以这个关键词开头的文件,该怎么操作呢? 范例:单个查看 ...

  3. 升级@Scheduled-分布式定时任务

    最近我在对项目的定时任务服务升级,希望改造成分布式,原本是利用@Scheduled注解实现,然而它并不支持分布式,如果改成quartz或者Spring Cloud Task,感觉对于自己这个简单的项目 ...

  4. css3练习

    读条的实现1 .div{position: relative;border: 1px solid #111;width: 80px;height: 60px} .div div{width: 20px ...

  5. springboot 集成Redis一主二从三哨兵

    1.Centos7 Redis一主二从三哨兵配置 Redis一主二从三哨兵环境搭建 2.接入过程 与集成redis单机不同的是jedis相关的配置做了修改,JedisPool换成了JedisSenti ...

  6. 教老婆学Linux运维(二)Linux常用命令指南【下】

    目录 tips:紧接上一篇,Linux常用命令指南[上] 2.4 文件解压缩 2.4.1 官宣的linux压缩工具:tar tar的基本命令格式为 tar [参数选项] [文件或目录] 我们前面学的命 ...

  7. Mysql高手系列 - 第18篇:mysql流程控制语句详解(高手进阶)

    Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 这是Mysql系列第18篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符 ...

  8. 设计模式---结构型模式之适配器模式(Adapter Pattern)

    适配器模式定义 将一个类的接口,转换成客户期望的另外一个接口.适配器让原本接口不兼容的类可以合作无间. 适配器模式主要有两种类型:对象适配器和类适配器. 在详细解释这两种类型时,解释部分重要角色.生活 ...

  9. Windows搭建SVN服务器

    安装 1.下载地址:https://www.visualsvn.com/files/VisualSVN-Server-4.0.3-x64.msi 2.开始安装: 3.安装配置: 4.Next直到完成 ...

  10. CSS3新单位vw、vh、vmin、vmax使用详解

    像 px.em 这样的长度单位大家肯定都很熟悉,前者为绝对单位,后者为相对单位.CSS3 又引入了新单位:vw.vh.vmin.vmax.下面对它们做个详细介绍. 新单位也成为视窗单位,视窗(View ...