当前位置:编程学习 > C#/ASP.NET >>

Duwamish深入剖析-配置篇

答案:    
  
  摘要:
  
  本文详细介绍了Duwamish网上电子书店的Web.config配置文件的结构处理方式以及用途,阐述了配置文件的各功能模块中的作用。
  
  
  --------------------------------------------------------------------------------
  
  目录:
  
  引言
  
  配置节处理程序声明
  
  自定义配置节
  
  配置节处理程序
  
  总结
  
  参考资料
  
  作者
  
  
  --------------------------------------------------------------------------------
  
  引言:
  
  几乎在每本介绍Asp.Net编程的书里,在谈到如何管理数据库连接字符串的时候,都是采用将数据库连接字符串以如下形式放在Web.Config文件中
  
  < appSettings>
  
  < add key="ConnectionString" value="data source=localhost;initial catalog=Database;user id=;password="/>
  
  </appSettings>
  
  然后在程序中采用以下方式访问:
  
  System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]
  
  这样做的好处非常明显:当数据库有变动的时候,只需要改变web.config中的连接字符串,而不需要重新编译整个应用程序,给应用的部署和移植带来非常大的方便。
  
  如果你以为web.config的作用仅限于此的话,那你就错了,web.config的配置功能非常强大,它可以支持使用自己的 XML 配置标记扩展标准的 ASP.NET 配置设置集,在Duwamish中一定程度上的体现了它的功能,下面我将要详细分析Duwamish的web.config文件,让大家能了解到开发一个典型的.Net WEB应用程序的配置技术。
  
  
  --------------------------------------------------------------------------------
  
  配置节处理程序声明
  
  在Duwamish解决方案中,Web.config文件是放在WEB项目下,因为web.config需要IIS和Asp.Net Runtime的管理和支持,所以它应该放在一个虚拟目录下,我们先来看看它的第一部分:
  
  <configSections>
  
  <section name="ApplicationConfiguration" type="Duwamish7.SystemFramework.ApplicationConfiguration, Duwamish7.SystemFramework" />
  
  <section name="DuwamishConfiguration" type="Duwamish7.Common.DuwamishConfiguration, Duwamish7.Common" />
  
  <section name="SourceViewer" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </configSections>
  
  这里定义了三个配置节处理程序声明(Section),按照规定它们必须出现在配置文件顶部 <configSections> 和 </configSections> 标记之间,在这里,它们只用到了name和type属性,其中,name属性定义了指定配置节的名称,而type属性则规定了指定从配置文件中读取节的配置节处理程序类的名称,有两个部分,前面为处理程序的类名,后面为Assembly名(Assembly必须位于bin目录中)以及版本号,公匙等信息。
  
  他们具体表示什么意思呢?比如第一个section,意思就是告诉Asp.Net系统,当在程序中使用System.Configuration.ConfigurationSettings.GetConfig("ApplicationConfiguration")这个静态方法来读取ApplicationConfiguration配置节的时候,会调用Duwamish7.SystemFramework.ApplicationConfiguration这个类来对这个配置节进行处理。关于配置节处理类,我们会在后面详细讨论,我们先继续往下看web.config文件。
  
  
  --------------------------------------------------------------------------------
  
  自定义配置节
  
  在<system.web>节点之后,我们可以看见以下的XML元素(关于system.web节点的说明已经有大量文章介绍,这里不再重复):
  
  <ApplicationConfiguration>
   <!-- Trace file settings -->
   <add key="SystemFramework.Tracing.Enabled" value="False" />
   <!-- Set this to the file with the trace settings. This file should be relative
   to the root application directory. -->
   <add key="SystemFramework.Tracing.TraceFile" value="DuwamishTrace.txt" />
   <!-- The TraceLevel for this switch. -->
   <add key="SystemFramework.Tracing.TraceLevel" value="4" />
   <!-- This switch name. The trace level for this name can be set through
   environment variables or the registry -->
   <add key="SystemFramework.Tracing.SwitchName" value="DuwamishTraceSwitch" />
   <!-- This description of the Tracing.SwitchName switch -->
   <add key="SystemFramework.Tracing.SwitchDescription" value="Error and information tracing for Duwamish" />
   <!-- Event log settings
  Note: The default Duwamish7 event source name is created in the local machine during setup. If you wish to log events to a different event source
   that event source must exist.
   -->
   <add key="SystemFramework.EventLog.Enabled" value="True" />
   <add key="SystemFramework.EventLog.Machine" value="." />
   <add key="SystemFramework.EventLog.SourceName" value="Duwamish7" />
   <!-- Use the standard TraceLevel values:
   0 = Off
   1 = Error
   2 = Warning
   3 = Info
   4 = Verbose -->
   <add key="SystemFramework.EventLog.LogLevel" value="1" />
   </ApplicationConfiguration>
   <DuwamishConfiguration>
   <!-- Settings specific to the Duwamish application -->
   <add key="Duwamish.DataAccess.ConnectionString" value="server=LUYAN\NetSDK;User ID=Duwamish7_login;Password=password;database=Duwamish7;Connection Reset=FALSE" />
   <add key="Duwamish.Web.EnablePageCache" value="True" />
   <add key="Duwamish.Web.PageCacheExpiresInSeconds" value="3600" />
   <add key="Duwamish.Web.EnableSsl" value="False" />
   </DuwamishConfiguration>
   <SourceViewer>
   <!-- Valid directories for source browsing. Keep these lower case. -->
   <add key="." value=" " />
   <add key="modules" value=" " />
   <add key="..\common\data" value=" " />
   <add key="..\systemframework" value=" " />
   <add key="..\business\facade" value=" " />
   <add key="..\business\rules" value=" " />
   <add key="..\dataaccess" value=" " />
   <add key="secure" value=" " />
   <add key="docs\common" value=" " />
   <add key="docs\dataaccess" value=" " />
   <add key="docs\facade" value=" " />
   <add key="docs\rules" value=" " />
   <add key="docs\web" value=" " />
   </SourceViewer>
  
  配置节信息分为两个主区域:配置节处理程序声明区域和配置节设置区域,这里就是刚才定义的三个section的配置节设置区域,它包含实际的配置设置,其用途说明请参见注释,所有配置信息都必须驻留在 <configuration> 和 </configuration> 根 XML 标记之间,配置节设置区域位于 <configSections> 区域之后。
  
  
  --------------------------------------------------------------------------------
  
  配置节处理程序
  <

上一个:白刃之战:PHP vs. ASP.NET(节选)-架构比较
下一个:我对duwamish7的一些理解(一)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,