ASP.NET 配置文件结构(节和节处理程序)
更新:2007 年 11 月
所有的 ASP.NET 配置信息都驻留在 Web.config 文件中的 configuration 元素中。此元素中的配置信息分为两个主区域:配置节处理程序声明区域和配置节设置区域。
配置节处理程序声明
配置节处理程序声明区域驻留在 Web.config 文件中的 configSections 元素内。它包含在其中声明节处理程序的 ASP.NET 配置 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 /> elements. -->
</sectionGroup>
配置节设置区域中的每个配置节都有一个节处理程序声明。节处理程序是用来实现 ConfigurationSection 接口的 .NET Framework 类。节处理程序声明中包含配置设置节的名称(如 pages)以及用来处理该节中配置数据的节处理程序类的名称(如 System.Web.Configuration.PagesSection)。下面的代码示例中阐释了这一点。
<section name="pages"
type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
</section>
您只需要声明配置节处理程序一次。默认 ASP.NET 配置节的节处理程序已在默认的 Machine.config 文件中进行声明。根 Web.config 文件和 ASP.NET 应用程序中的其他配置文件都自动继承在 Machine.config 文件中声明的配置处理程序。只有当您创建用来处理自定义设置节的自定义节处理程序类时,才需要声明新的节处理程序。
ASP.NET 配置设置 中列出了预定义的 ASP.NET 配置设置节。有关定义自己的自定义设置节以及开发自己的配置节处理程序以管理它们的信息,请参见用于创建自定义节处理程序的类和如何:使用 ConfigurationSection 创建自定义配置节。
配置节设置
配置节设置区域位于配置节处理程序声明区域之后,它包含实际的配置设置。
默认情况下,在内部或者在某个根配置文件中,对于 configSections 区域中的每一个 section 和 sectionGroup 元素,都会有一个指定的配置节元素。可以在 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Machine.config.comments 文件中查看这些默认值。
配置节元素还可以包含子元素,这些子元素与其父元素由同一个节处理程序处理。例如,下面的 pages 元素包含一个 namespaces 元素,该元素没有相应的节处理程序,因为它由 pages 节处理程序来处理。
<pages
buffer="true"
enableSessionState="true"
asyncTimeout="45"
<!-- Other attributes. -->
>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
</namespaces>
</pages>
Web.config 文件中的示例
下面的代码示例演示上面的代码示例可适合于 Web.config 文件的哪个位置。请注意,pages 元素的 namespaces 元素没有配置节处理程序声明。这是由于 System.Web.Configuration.PagesSection 节处理程序处理 pages 设置节的所有子元素。
<?xml version="1.0" encoding="us-ascii"?>
<configuration>
<!-- Configuration section-handler declaration area. -->
<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"
/>
<!-- Other <section /> elements. -->
</sectionGroup>
<!-- Other <sectionGroup /> and <section /> elements. -->
</configSections>
<!-- Configuration section settings area. -->
<pages
buffer="true"
enableSessionState="true"
asyncTimeout="45"
<!-- Other attributes. -->
>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
</namespaces>
</pages>
<!-- Other section settings elements. -->
</configuration>
编辑问题
因为配置节中的元素必须是格式良好的 XML,所以元素和属性是区分大小写的。可通过多种方法来编辑配置设置。有关更多信息,请参见编辑 ASP.NET 配置文件。
必须以编程方式创建自定义的配置节处理程序,才能在 ASP.NET 配置文件中使用自定义节元素。有关更多信息,请参见如何:使用 ConfigurationSection 创建自定义配置节。
配置文件中的路径属性
在引用 Web 应用程序路径时,Web.config 文件中的 path 属性可以用指示应用程序根目录的“~/”快捷方式开始。有关更多信息,请参见 ASP.NET 网站路径。
请参见
任务
如何:使用 ConfigurationSection 创建自定义配置节
如何:使用 IConfigurationSectionHandler 创建自定义配置节