• ASP.NET杂谈---web.config


    ConfigSections的结构



    首先我们先回顾一下ConfigSections的结构和它子节点的说明,如下:

       1:  <configSections>
       2:        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
       3:          <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
       4:            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
       5:                     requirePermission="false" allowDefinition="MachineToApplication"/>
       6:            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
       7:              <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
       8:                       requirePermission="false" allowDefinition="Everywhere" />
       9:              <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
      10:                       requirePermission="false" allowDefinition="MachineToApplication" />
      11:              <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
      12:                       requirePermission="false" allowDefinition="MachineToApplication" />
      13:              <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
      14:                       requirePermission="false" allowDefinition="MachineToApplication" />
      15:            </sectionGroup>
      16:          </sectionGroup>
      17:        </sectionGroup>
      18:      </configSections>  

    

    Web.config的功能和特点


    web.config主要是用来存储ASP.NET应用程序的配置信息,例如:安全设置、授权信息,身份认证、事务处理、会话信息、编译信息、自定义及扩展等。

    Web.config中节点说明


    简要说明一下其中一些节点的功能,我会在后续的系列中详细说明每个节点的功能和用途。

    节点名称

    功能描述

    configSections

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

    section

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

    appSettings

    包含自定义应用程序设置,如文件路径、XML Web services URL 或存储在应用程序的 .ini 文件中的任何信息。

    connectionStrings

    为 ASP.NET 应用程序和 ASP.NET 功能指定数据库连接字符串(名称/值对的形式)的集合。

    system.web

    指定 ASP.NET 配置节的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为的配置元素

    compilation

    包含 ASP.NET 使用的所有编译设置

    authentication

    配置 ASP.NET 身份验证支持。

    pages

    标识特定于页的配置设置。

    httpHandlers

    将传入的 URL 请求映射到 IHttpHandler 类。

    httpModules

    添加、移除或清除应用程序中的 HTTP 模块。

    system.codedom

    指定 ASP.NET 应用程序支持的编译器

    system.webServer

    指定适用于 Web 应用程序的 IIS  设置

    其实还有一些常用配置节信息,但是在默认生成的web.config文件中没有显示出来。

    节点名称

    功能描述

    authorization

    配置 ASP.NET 身份验证支持。

    caching

    为 Web 应用程序配置缓存设置。

    customErrors

    为 ASP.NET 应用程序定义自定义错误信息。

    globalization

    配置应用程序的全球化设置。

    httpCookies

    为 Web 应用程序使用的 Cookie 配置属性。

    httpRuntime

    配置 ASP.NET HTTP 运行时设置。

    membership

    为 ASP.NET 成员资格配置用于对用户帐户进行管理和身份验证的参数

    profile

    使用 ASP.NET 配置文件来配置用于管理用户值的参数。

    roleManager

    为角色管理配置应用程序

    sessionState

    配置会话状态模块。

    trace

    配置 ASP.NET 跟踪服务。

    ConfigSectins属性和子节点说明    


    属性:

        无。

    子节点说明:

    节点名称

    功能描述

    sectionGroup

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

    section

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

    我们不难发现ConfigSectings主要包含SectiongGroup和Section两个子节点,下面就介绍一下这两个节点的属性说明:

    1、sectionGroup属性说明

     


    属性名称

    功能描述

    name

    指定与下面 type 属性指定的配置节处理程序关联的配置节或元素的名称。

    type

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

    type=" Fully qualified class name , assembly file name , version , culture , public key token ",定义必须匹配程序集引用。

    程序集文件必须与定义它的 Web.config 文件位于同一个应用程序目录中。

    SectionGroup中还是可以在包含多个SectionGroup和Section。

     

     

    2、section属性说明


    属性名称

    功能描述

    name

    指定与 type 属性中指定的配置节处理程序关联的配置节或元素的名称。

    type

    指定用来执行如下操作的配置节处理程序类的名称:处理在 name 属性中指定的节或元素中的配置设置,格式和上面sectionGroup属性中的type格式相同。

    requirePermission

    指定是否得到相关的配置部分要求存取权限信息。可选的 Boolean 属性。

    restartOnExternalChanges

    指定在该节的配置数据发生更改时是否应当重新启动应用程序,不适用于 ASP.NET 应用程序,可选的 Boolean 属性。

    allowLocation

    指定是否可以在 location 元素内使用该节,仅适用于 ASP.NET 应用程序,默认值为 True。

    allowExeDefinition

    指定可以在哪个配置文件中使用该节,仅适用于 .NET Framework 客户端应用程序,可选的 Boolean 属性。

    allowDefinition

    指定可以在哪个配置文件中使用该节,仅适用于 ASP.NET 应用程序,可选的 Boolean 属性。

    其实在配置allowDefinition和allowExeDefinition属性的时候,他们其实是有选择值的。allowDefinition的值是在ConfigurationAllowDefinition 枚举中选择,

    而allowExeDefinition的值是在ConfigurationAllowExeDefinition 枚举中选择。下面就介绍一下这两个枚举中各个值的的介绍:

    1、ConfigurationAllowDefinition 枚举


    描述

    Everywhere

    允许在任何配置文件或目录中配置该节,如下所示:

    • Machine.config。

    • 根 Web.config。

    • 应用程序的 Web.config。

    • 虚拟目录。

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

    如果未使用 allowDefinition 属性,则假设为 Everywhere。这是默认设置。

    MachineToApplication

    允许在下列文件之一中配置该节:

    • Machine.config。

    • 根 Web.config。

    • 应用程序的 Web.config。

    这不包括位于应用程序中的虚拟目录或物理子目录下的 Web.config 文件。

    MachineToWebRoot

    允许在下列文件之一中配置该节:

    • Machine.config。

    • 根 Web.config。

    MachineOnly

    只允许在 Machine.config 文件中配置该节。

    注释:

          Machine.config的位置:%SystemRoot%\Microsoft.NET\Framework\versionNumber\CONFIG 中。

          根 Web.config的位置:%SystemRoot%\Microsoft.NET\Framework\versionNumber\CONFIG 中。

    2、ConfigurationAllowExeDefinition 枚举


    描述

    MachineToApplication

    可在 Machine.config 文件或客户端应用程序目录中的 Exe.config 文件中定义 ConfigurationSection。

    MachineToRoamingUser

    可在 Machine.config 文件、客户端应用程序目录中的 Exe.config 文件、漫游用户目录中的 User.config 文件或本地用户目录中的 User.config 文件中定义 ConfigurationSection。

    MachineToLocalUser

    可在 Machine.config 文件、客户端应用程序目录中的 Exe.config 文件或漫游用户目录中的 User.config 文件中定义 ConfigurationSection

    MachineOnly

    ConfigurationSection 只能在 Machine.config 文件中定义。


  • 相关阅读:
    [置顶] 大型网站技术架构(六)网站的伸缩性架构
    [置顶] 大型网站技术架构(五)网站高可用架构
    [置顶] 大型网站技术架构(五)网站高可用架构
    [置顶] 大型网站技术架构(四)网站的高性能架构
    [置顶] 大型网站技术架构(四)网站的高性能架构
    [置顶] 大型网站技术架构(三)架构核心要素
    [置顶] 大型网站技术架构(二)架构模式
    [置顶] 大型网站技术架构(二)架构模式
    [置顶] 大型网站技术架构(一)大型网站架构演化
    [置顶] 大型网站技术架构(一)大型网站架构演化
  • 原文地址:https://www.cnblogs.com/lucky_dai/p/1998466.html
Copyright © 2020-2023  润新知