ASP.NET配置文件格式浅析


  本文标签:ASP.NET配置文件 配置文件格式

  ASP.NET配置文件的作用是什么呢?ASP.NET资源的配置信息包含在配置文件集中,每个文件的名称都是 Web.config  。ASP.NET配置文件格式是什么呢?每个ASP.NET配置文件都包含了由用于指定配置设置的 XML 标记和子标记组成的嵌套层次结构  。因为标记必须是标准格式的 XML,所以标记、子标记和属性都要区分大小写  。标记和属性名都是驼峰式大小写,即标记名的第一个字符是小写,而随后的任何连接字的首字母全都是大写  。属性值采用 Pascal 的大小写格式,即第一个字符大写,而随后的任何连接字的首字母也都大写  。true 和 false 例外,它们始终都是小写  。

  那么下面就向你介绍具体的ASP.NET配置文件格式:

  所有配置信息都位于 ﹤configuration﹥ 和 ﹤/configuration﹥ 根 XML 标记之间  。标记间的配置信息分为两大主要区域:配置节处理程序声明区域和配置节设置区域  。

  配置节处理程序声明出现在 ﹤configSections﹥ 和 ﹤/configSections﹥ 标记之间配置文件的最上面  。在 ﹤section﹥ 标记中包含的每个声明都指定了提供特定的配置数据集的节名,以及在该节中处理配置数据的 .NET Framework 类名  。

  配置节设置区域在 ﹤configSections﹥ 区域后面,它包含了实际的配置设置  。在 ﹤configSections﹥ 区域中的每个声明都有一个配置节  。每个配置节都包含带有该节设置属性的子标记  。

  下面的Web.config文件示例声明了两个配置﹤section﹥ 处理程序  。一个处理程序管理应用程序设置,另一个则管理会话状态  。

  1. ﹤configuration﹥  
  2.    ﹤configSections﹥  
  3.       ﹤section name="appSettings"     
  4.          type="System.Configuration.NameValueFileSectionHandler,   
  5.          System, Version=1.0.3300.0,   
  6.          Culture=neutral, PublicKeyToken=b77a5c561934e089"/﹥           
  7.       ﹤section name="sessionState"   
  8.          type="System.Web.SessionState.SessionStateSectionHandler,   
  9.          System.Web, Version=1.0.3300.0, Culture=neutral,   
  10.          PublicKeyToken=b03f5f7f11d50a3a"   
  11.          allowDefinition="MachineToApplication"/﹥  
  12.    ﹤/configSections﹥  
  13.    ﹤appSettings﹥  
  14.       ﹤add key="dsn" value="localhost;uid=MyUserName;pwd=;"/﹥  
  15.       ﹤add key="msmqserver" value="server\myqueue"/﹥  
  16.    ﹤/appSettings﹥  
  17.      
  18.    ﹤sessionState cookieless="true" timeout="10"/﹥  
  19. ﹤/configuration﹥ 

  您只需声明一次配置节处理程序  。可以将它放置在服务器的根 Machine.config 文件中或包含 Web 应用程序文件的虚拟目录下的 Web.config 文件中  。子目录中的配置文件会自动继承在父目录中声明的配置处理程序  。详细信息,请参阅配置继承  。

  配置设置通常在节分组标记下相互嵌套  。最高级的节标记通常表示应用配置设置的名称空间  。例如,最高级的 ﹤system.net﹥ 标记代表网络类的设置,而 ﹤system.web﹥ 标记则代表 ASP.NET 类的设置  。

  下例显示了标记嵌套  。

  1. ﹤configuration﹥  
  2.    ﹤configSections﹥  
  3.       ﹤sectionGroup name="system.net"﹥  
  4.          ﹤section name="authenticationModules" 
  5.             type="System.Net.Configuration.NetAuthenticationModuleHandler,   
  6.             System, Version=1.0.3300.0, Culture=neutral,   
  7.             PublicKeyToken=b77a5c561934e089"/﹥                                 
  8.          ﹤section name="webRequestModules"   
  9.             type="System.Net.Configuration.WebRequestModuleHandler,   
  10.             System, Version=1.0.3300.0, Culture=neutral,  
  11.             PublicKeyToken=b77a5c561934e089"/﹥  
  12.        ﹤/sectionGroup﹥  
  13.        ﹤sectionGroup name="system.web"﹥  
  14.           ﹤section name="authorization"   
  15.              type="System.Web.Configuration.AuthorizationConfigHandler,   
  16.              System.Web, Version=1.0.3300.0, Culture=neutral,   
  17.              PublicKeyToken=b03f5f7f11d50a3a"/﹥              
  18.           ﹤section name="sessionState"   
  19.              type="System.Web.SessionState.SessionStateSectionHandler,  
  20.              System.Web, Version=1.0.3300.0, Culture=neutral,  
  21.              PublicKeyToken=b03f5f7f11d50a3a"  
  22.              allowDefinition="MachineToApplication"/﹥          
  23.        ﹤/sectionGroup﹥  
  24.     ﹤/configSections﹥  
  25.    ﹤system.net﹥  
  26.       ﹤! -- 在此处插入 Net 类设置  。 --﹥  
  27.    ﹤/system.net﹥  
  28.    ﹤system.web﹥  
  29.         ﹤authorization﹥  
  30.             ﹤allow users="*"/﹥ ﹤!-- Allow all users --﹥  
  31.             ﹤!-- 允许或拒绝特定的用户  。  
  32.             allow users="[comma separated list of users]" 
  33.                   roles="[comma separated list of roles]"/﹥  
  34.             ﹤deny users="[comma separated list of users]" 
  35.                   roles="[comma separated list of roles]"/﹥  
  36.             --﹥  
  37.         ﹤/authorization﹥  
  38.         ﹤sessionState   
  39.             sqlConnectionString="data source=localhost;  
  40.                Integrated Security=SSPI;  
  41.                Initial Catalog=northwind"  
  42.             cookieless="false"   
  43.             timeout="10"/﹥  
  44.    ﹤/system.web﹥  
  45. ﹤/configuration﹥ 

  ASP.NET 配置结构没有规定结构所支持的配置数据类型  。配置节处理程序类会处理所有 Web.config 数据  。您可以使用 .NET Framework 提供的预定义的配置节处理程序,也可以创建自己的处理程序来处理自定义的配置数据  。

  ASP.NET配置文件格式的相关内容就向你介绍到这里,希望对你了解ASP.NET配置文件格式有所帮助  。