configSections 的 section 元素(常规设置架构)

[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]

定义配置节处理程序与配置元素之间的关联。

<section 
   name="section name"
   type="configuration section handler class, assembly file name, version, culture, public key token"
   allowDefinition= "Everywhere|MachineOnly|MachineToApplication|MachineToWebRoot" 
   allowLocation="True|False" 
   restartOnExternalChanges="True|False" 
/>

特性和元素

以下几节描述了特性、子元素和父元素。

特性

特性

说明

allowDefinition

可选的 Enum 特性。

仅适用于 ASP.NET 应用程序。

指定可以在哪个配置文件中使用该节。

此特性可以是下列值(在 ConfigurationAllowDefinition 枚举中定义)之一,这些值按照适用范围递减的顺序排列。

值说明
Everywhere 允许在任何配置文件或目录中配置该节,如下所示:
  • Machine.config。

  • 根 Web.config。

  • 应用程序的 Web.config。

  • 虚拟目录。

  • 应用程序中的物理子目录。

如果未使用 allowDefinition 特性,则假设为 Everywhere。这是默认值。
MachineToApplication 允许在下列文件之一中配置该节:
  • Machine.config。

  • 根 Web.config。

  • 应用程序的 Web.config。

这不包括位于应用程序中的虚拟目录或物理子目录下的 Web.config 文件。
MachineToWebRoot 允许在下列文件之一中配置该节:
  • Machine.config。

  • 根 Web.config。

Machine.config 和根 Web.config 文件都位于 %SystemRoot%\Microsoft.NET\Framework\版本号\CONFIG 中。
MachineOnly 只允许在 Machine.config 文件中配置该节,该文件位于 %SystemRoot%\Microsoft.NET\Framework\版本号\CONFIG 中。

allowExeDefinition

可选的 Enum 特性。

仅适用于 .NET Framework 客户端应用程序。

指定可以在哪个配置文件中使用该节。

此特性可以是下列值(在 ConfigurationAllowExeDefinition 枚举中定义)之一,这些值按照适用范围递减的顺序排列。

值说明
MachineToApplication 允许在下列文件之一中配置该节:
  • Machine.config。

  • 应用程序配置。

MachineToRoamingUser
MachineToLocalUser
MachineOnly 只允许在 Machine.config 文件中配置该节,该文件位于 %SystemRoot%\Microsoft.NET\Framework\版本号\CONFIG 中。

allowLocation

可选的 Boolean 特性。

仅适用于 ASP.NET 应用程序。

指定是否可以在 location 元素内使用该节。

默认值为 True。

name

必选的 String 特性。

指定与 type 特性中指定的配置节处理程序关联的配置节或元素的名称。 这是该元素在配置文件的节设置区域中使用的名称。

restartOnExternalChanges

可选的 Boolean 特性。

不适用于 ASP.NET 应用程序。

指定在该节的配置数据发生更改时是否应当重新启动应用程序。

type

必选的 String 特性。

指定用来执行如下操作的配置节处理程序类的名称:处理在 name 特性中指定的节或元素中的配置设置。 使用以下格式:

type="完全限定类名, 程序集文件名, 版本, 区域性, 公钥标记"

定义必须匹配程序集引用。 例如,如果下面的示例语法中的版本号与程序集不匹配,则会发生错误。

type="MyConfigSectionHandler.MyHandler,MyCustomConfigurationHandler,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"

程序集文件必须与定义它的 Web.config 文件位于同一个应用程序目录中。 对于根 Web.config 文件或 Machine.config 文件,程序集文件必须位于 %SystemRoot%\Microsoft.NET\Framework\版本目录中。

子元素

无。

父元素

元素

说明

configuration

指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

configSections

指定配置节和命名空间声明。

sectionGroup

定义配置节处理程序与配置节之间的关联。

备注

section 元素将配置节处理程序与配置元素或节关联。 由于 ASP.NET 不对如何处理配置文件内的设置作任何假设,因此这非常必要。 但 ASP.NET 会将配置数据的处理委托给配置节处理程序。 每个 section 元素均标识一个配置节或元素,以及从处理配置节或元素的 ConfigurationSection 派生的关联类。 可以在 sectionGroup 元素中对 section 元素进行逻辑分组以便进行组织,并帮助避免命名冲突。 section 和 sectionGroup 元素包含在 configSections 元素中。

默认配置

.NET Framework 配置元素的配置节在 Machine.config 文件中定义,因内容较多,恕不在此列出。 下面的内容摘自 Machine.config 文件,用于定义 system.web 节中 authentication 元素的配置节处理程序。 然后,定义 authentication 元素的配置设置。

如果配置节处理程序不与某个配置元素关联,ASP.NET 将发出服务器错误“无法识别的配置节元素名称”。

<configuration>
    <configSections>
        <sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=%ASSEMBLY_VERSION%, Culture=neutral, PublicKeyToken=%MICROSOFT_PUBLICKEY%">
            <section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
            <!-- Other system.web sections -->
        </sectionGroup>
        <!-- Other configuration sections -->
    </configSections>

    <system.web>
        <authentication mode="Windows">
            <forms name=".ASPXAUTH" 
                   loginUrl="login.aspx" defaultUrl="default.aspx" 
                   protection="All" 
                   timeout="30" 
                   path="/" 
                   requireSSL="False" 
                   slidingExpiration="True" 
                   cookieless="UseCookies" 
                   domain="" 
                   enableCrossAppRedirects="False">
                <credentials passwordFormat="SHA1" />
            </forms>
            <passport redirectUrl="internal" />
        </authentication>
        <!-- Other system.web elements -->
    </system.web>
    <!-- Other configuration settings -->
</configuration>

示例

下面的代码示例演示如何定义自定义配置节以及如何定义该节的设置。

<configuration>

   <configSections>
      <section name="sampleSection"
               type="System.Configuration.SingleTagSectionHandler" />
   </configSections>

   <sampleSection setting1="Value1" 
                  setting2="value two" 
                  setting3="third value" />

</configuration>

元素信息

配置节处理程序

不适用。

配置成员

ConfigurationSection

可配置的位置

Machine.config

根级别的 Web.config

应用程序级别的 Web.config

虚拟或物理目录级别的 Web.config

要求

Microsoft Internet 信息服务 (IIS) 5.0、5.1 或 6.0

.NET Framework 版本 1.0、1.1 或 2.0

Microsoft Visual Studio 2003 或 Visual Studio 2005

请参见

参考

configSections 元素(常规设置架构)

configSections 的 sectionGroup 元素(常规设置架构)

configSections 的 clear 元素(常规设置架构)

configSections 的 remove 元素(常规设置架构)

configuration 元素(常规设置架构)

概念

ASP.NET Configuration File Hierarchy

Format of ASP.NET Configuration Files

Configuration Inheritance

其他资源

常规配置设置 (ASP.NET)

ASP.NET 配置设置

ASP.NET Configuration Files

Configuring ASP.NET Applications

ASP.NET Configuration API