ASP.NET配置文件浅析

      当创建一个ASP.NET项目时,默认情况下会在根目录自动创建一个默认的 Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。Web.config文件是按照XML的格式定义的,所以必须严格遵守XML格式。

      所有配置信息都驻留在 <configuration> 和 </configuration> 根 XML 标记之间。标记间的配置信息分为两个主区域:配置节处理程序声明区域和配置节设置区域。

配置节处理程序声明出现在配置文件顶部 <configSections> 和 </configSections> 标记之间,配置节声明使用<section>节,如:

     <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />

     配置节也支持嵌套,外层的配置节使用<sectionGroup>,内层的使用<section>,如:

      <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
                <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
      </sectionGroup>

     配置节设置区域位于 <configSections> 区域之后,它包含实际的配置设置,如:

     <dataConfiguration defaultDatabase="DefaultConnection" />

      所有的配置节都必须遵守先声明后使用的原则,不然编译程序时会报错。

      有人可能会疑问,为什么Web.config中默认生成的配置节没看到声明就直接用呢?比如<connectionStrings>和<appSettings>。这是因为这些节的声明是在Windows\Microsoft .NET\Framework\versionNumber\CONFIG\Machine.config中完成的,Machine.config 文件用于服务器级的配置设置,Web.config文件继承 Machine.config 文件中的所有设置。

posted @ 2010-05-27 01:04  涂墨留香  阅读(1127)  评论(0编辑  收藏  举报