ASP.NET 配置文件的结构(配置段和配置段处理器)

所有 ASP.NET 配置信息都位于 Web.config 文件的 configuration 根元素中,并且被划分成两个主要分组:配置段处理器定义区和配置段设置区。

定义配置段处理器

配置段处理器的定义位于 Web.config 文件的 configSections 元素中。在配置段处理器被定义之后会包含一个用于定义配置的 section 元素。配置段处理器定义可以被嵌套在 sectionGroup 元素中以助于组织配置信息。通常,sectionGroup 元素会展示配置所应用的命名空间。比如,将所有 ASP.NET 配置段处理器都分组在 system.web 配置段中的代码如下。


    <sectionGroup

      name="system.web"

      type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

      <!-- <section /> 元素。 -->

    </sectionGroup>

配置段设置区的每个配置段有各自的处理器定义。配置段处理器是一个实现了 ConfigurationSection 接口的 .NET Framework 类。配置段处理器定义中包含有配置段名称(如 pages)和配置段中对数据进行处理的处理器类的名称(如 codeSystem.Web.Configuration.PageSection)。参考下例代码。


      <section

        name="pages"

        type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

      </section>

开发者每次只能够定义一个配置段处理器。ASP.NET 默认的配置段处理器在 Machine.config 文件中预先定义。并且 ASP.NET 中的 Web.config 根文件和其他配置文件都自动从 Machine.config 文件所定义的配置处理器所派生。如果要创建自定义处理器类,就必须先对新的配置段处理器进行定义。

设置配置段

配置段处理器定义区的后面就是包含实际配置的设置区。

默认时,任何内在于或与根目录配置一体的文件中,都有指派给每个 configSection 区域中 sectionGroup 子元素的配置段元素。可以通过 %SystemRoot%\Microsoft.NET\Framework\版本号\CONFIG\Machine.config.comments 文件查看到相关内容。

配置段元素包含的子元素同样可以被父元素的处理器进行处理。比如,因为下例所示的 pages 元素被 pages 配置段处理器,所以没有为子元素 namespaces 指定相应的处理器。


  <pages

    buffer="true"

    enableSessionState="true"

    asyncTimeout="45"

  <!-- 其他参数。 -->

  >

    <namespaces>

      <add namespace="System" />

      <add namespace="System.Collections" />

    </namespaces>

  </pages>

Web.config 文件实例

下例所示的 Web.config 文件将与上述代码配合使用。要注意的是并没有为 pages 元素的 namespaces 子元素定义处理器。这是因为 System.Web.Configuration.PageSection 的配置段处理器会处理 pages 中的所有子元素。


<?xml version="1.0" encoding="us-ascii"?>

<configuration>



<!-- 配置段处理器的定义区。 -->

  <configSections>

    <sectionGroup

      name="system.web"

      type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

      <section

        name="pages" 

        type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

      />

      <!-- 其他 <section /> 元素。 -->

    </sectionGroup>

    <!-- 其他 <sectionGroup /> 和 <section /> 元素。 -->

  </configSections>



<!-- 配置段的设置区。 -->

  <pages

    buffer="true"

    enableSessionState="true"

    asyncTimeout="45"

  <!-- 其他参数。 -->

  >

    <namespaces>

      <add namespace="System" />

      <add namespace="System.Collections" />

    </namespaces>

  </pages>

  <!-- 其他配置段元素。 -->



</configuration>

编辑问题

因为配置段中的元素必须以定义良好的 XML 格式存在,所以元素和参数对于字母大小写也是敏感的。另外,可以通过多种方式对配置文件进行编辑。

ASP.NET 配置文件的自定义处理器必须在使用自定义元素之前通过编程来创建。

配置文件的 Path 参数集

引用 Web 应用程序的路径时,Web.config 文件的 path 参数集中可以使用代表应用程序根目录的 "~/" 符号作为路径的开始。

你可能感兴趣的:(asp.net)