[转贴]ASP+配置

概述
 对于任何的WEB应用程序服务器,一个主要的要求就是具有丰富而且灵活具有柔韧性的配置系统——使开发者能够让“可
安装的应用程序”容易地与“设置数据”联系,而无须将设置值置入程序代码,而且,能使Administrators方便容易地调
整、定制这些设置值 Post-deployment。

 ASP+ 配置系统致力于满足这两个必要条件。为做到这些,它通过了一个分级的配置基础结构,以使扩展的配置数据可以
保存,而且贯穿使用在整个ASP+应用程序当中。同时,ASP+提供了丰富的初始设置集合。

 ASP+配置系统提供了一下好处:

 1、配置信息存储在基于XML的配置文件当中。管理员和开发者能够使用任何标准文本编辑器,XML解析器,或PERL脚本来
解释和更新配置设定。
 2、配置信息存放在文件中,它作为应用程序的其他部分放置在与其相同的目录树下。这使ASP+应用程序非常容易安装,
只需使用 Xcopy 或者是 FTP。
 3、配置系统易于扩展。你可以在配置系统中存放自己的配置标准以及设置。
 4、对ASP+配置文件的更改由系统自动检测,在无须用户干涉的情况下被提交。系统管理员不需要去动系统以让改变生
效。
 5、配置信息被分级提交应用。子目录继承或覆盖从父目录得来的配置设定。这就允许不同的应用程序或单个应用程序的
不同部分具有不同的设定。
Config.web 配置文件
所有ASP+的配置信息都包括在名叫Config.web的配置文件当中。下面的例子说明了一个ASP+配置文件的结构:


代码:
--------------------------------------------------------------------------------

<!-- CONFIG.WEB FILE --><configuration>   <configsections>      <add names="httpmodules"
type="System.Web.Config.HttpModulesConfigHandler"/>      <add names="httphandlers"
type="System.Web.Config.HttpHandlerConfigHandler"/>      <add names="sessionstate"
type="System.Web.Config.SessionStateConfigHandler"/>      <add names="globalization"
type="System.Web.Config.GlobalizationConfigHandler"/>      <!-- ADDITIONAL CONFIGSECTION DECLARATIONS GO
HERE -->     </configsections>   <httpmodules>      <!-- http module subelements go here -->   
</httpmodules>   <httphandlers>      <!-- http handlers subelements go here -->   </httphandlers>   
<sessionstate>      <!-- session state subelements go here -->   </sessionstate>   <globalization>      <!-
- session state subelements go here -->   </globalization>   <!-- ADDITIONAL CONFIG SECTIONS GO HERE --
></configuration>

--------------------------------------------------------------------------------

所有的配置信息都必须居于<configuration>和</configuration>标记之间。配置文件有两个主要部分。在上部是配置小节
的处理程序声明(包括在<configsection>和</configsection>标记中)。文件的其余部分包括了实际的配置小节(为了清
楚,它们的子元素已被移除)。注意,下面的每一个配置小节都必须对应有一个<configsection>中的声明存在。每一个声
明赋予了配置小节名称并且指出了将处理其配置信息的NGWS Framework Assembly及Class。每一配置小节包含含有ASP+细
节配置设定的子元素。

以下代码举例说明了这些概念:


代码:
--------------------------------------------------------------------------------

<configuration>   <configsections>      <add name="debugmode"
type="System.Web.Config.SingleTagSectionHandler" />       <add name="globalization"
type="System.Web.Config.SingleTagSectionHandler" />      <add name="assemblies"
type="System.Web.UI.AssembliesSectionHandler" />      <add name="security"
type="System.Web.Config.SecurityConfigHandler" />   </configsections>   <debugmode enable="true" />   
<globalization      requestencoding="us-ascii"      responseencoding="iso-8859-1"   />   <assemblies>      
<add assembly="System.Data.dll"/>      <add assembly="System.dll"/>      <add
assembly="System.Drawing.dll"/>      <add assembly="*"/>   </assemblies>   <security>      
<authorization>         <allow users="*" /> <!-- Allow all users -->      </authorization>   </security>
</configuration>

--------------------------------------------------------------------------------

此例说明了一个配置文件,它包含四个配置小节——debugmode,globalization,assemblies以及security。下面是已制定
的设置:

*在debug小节,调试模式被打开(设置成true)。
*在globalization小节,设置了请求(Request)和回应(Response)的编码方式。
*在assemblies小节,加入了四个assemblie。
*在security小节,所有用户均被赋予访问权。
层次配置体系
 我们曾论及,服务器上可以有多个配置文件存在于不同的目录中。当对一个详细URL的请求到达时,ASP+计算该URL在层
次结构风格中的设定,并为所请求的URL使用在路径中定位的配置文件。

 例如,一个站点的结构如下:
Application Root
 |-----SubDir1
  |-----SubDir2

 想法是,配置应用程序的设定使所有的用户都可以访问应用程序根目录(Application Root),使选中的用户可以访问两
个子目录。

 现在假定有一个Config.web文件在目录SubDir1中,Application Root和SubDir2中不存在Config.web文件。在此例中实
际上使用了两个Config.web文件。最高层的Config.web文件位于 %windir%/Complus/Version 目录,它随NGWS SDK安装而
来,包含了默认的设定。这个文件被认为处于机器级别上,所有的ASP+目录和子目录都继承了其设定。此文件的默认安全
小节的设定是允许所有用户的访问。当例中的Application Root目录不存在配置文件,即没有编辑这个设定值时,所有的
用户都将允许访问此目录,因为此目录继承了机器级别配置文件的设定。如果SubDir1目录中的Config.web文件包含了一个
安全配置小节,它设定成只允许某些用户访问目录,那么SubDir2目录将继承其设定,但是Application Root目录并不受其
影响。所以,所有的用户可以访问Application Root目录,但只有某些用户可以访问两个子目录。

标准配置设定

ASP+环境自带了一个标准的Config.web文件,它包含了一个丰富的配置设定集合。此文件位于
%windir%/ComPlus/Version 目录。在Machine level(机器级)的配置文件中,我们可以在ASP+标准配置小节处理器下面找
到标准的配置小节。

SunADM@2K1020



--------------------------------------------------------------------------------
 作  者:SunADM
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值