ASP+設(shè)置概念
發(fā)表時(shí)間:2024-06-12 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]對于任何的WEB應(yīng)用程序服務(wù)器,一個(gè)主要的要求就是具有豐富而且靈活具有柔韌性的配置系統(tǒng)——使開發(fā)者能夠讓“可安裝的應(yīng)用程序”容易地與“設(shè)置數(shù)據(jù)”聯(lián)系,而無須將設(shè)置值置入程序代碼,而且,能使Administrators方便容易地調(diào)整、定制這些設(shè)置值 Post-deployment。 ASP+ 配置系...
對于任何的WEB應(yīng)用程序服務(wù)器,一個(gè)主要的要求就是具有豐富而且靈活具有柔韌性的配置系統(tǒng)——使開發(fā)者能夠讓“可安裝的應(yīng)用程序”容易地與“設(shè)置數(shù)據(jù)”聯(lián)系,而無須將設(shè)置值置入程序代碼,而且,能使Administrators方便容易地調(diào)整、定制這些設(shè)置值 Post-deployment。
ASP+ 配置系統(tǒng)致力于滿足這兩個(gè)必要條件。為做到這些,它通過了一個(gè)分級的配置基礎(chǔ)結(jié)構(gòu),以使擴(kuò)展的配置數(shù)據(jù)可以保存,而且貫穿使用在整個(gè)ASP+應(yīng)用程序當(dāng)中。同時(shí),ASP+提供了豐富的初始設(shè)置集合。
ASP+配置系統(tǒng)提供了一下好處:
1、配置信息存儲(chǔ)在基于XML的配置文件當(dāng)中。管理員和開發(fā)者能夠使用任何標(biāo)準(zhǔn)文本編輯器,XML解析器,或PERL腳本來解釋和更新配置設(shè)定。
2、配置信息存放在文件中,它作為應(yīng)用程序的其他部分放置在與其相同的目錄樹下。這使ASP+應(yīng)用程序非常容易安裝,只需使用 Xcopy 或者是 FTP。
3、配置系統(tǒng)易于擴(kuò)展。你可以在配置系統(tǒng)中存放自己的配置標(biāo)準(zhǔn)以及設(shè)置。
4、對ASP+配置文件的更改由系統(tǒng)自動(dòng)檢測,在無須用戶干涉的情況下被提交。系統(tǒng)管理員不需要去動(dòng)系統(tǒng)以讓改變生效。
5、配置信息被分級提交應(yīng)用。子目錄繼承或覆蓋從父目錄得來的配置設(shè)定。這就允許不同的應(yīng)用程序或單個(gè)應(yīng)用程序的不同部分具有不同的設(shè)定。
Config.web 配置文件
所有ASP+的配置信息都包括在名叫Config.web的配置文件當(dāng)中。下面的例子說明了一個(gè)ASP+配置文件的結(jié)構(gòu):
代碼:
--------------------------------------------------------------
<!-- 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>標(biāo)記之間。配置文件有兩個(gè)主要部分。在上部是配置小節(jié)的處理程序聲明(包括在<configsection>和</configsection>標(biāo)記中)。文件的其余部分包括了實(shí)際的配置小節(jié)(為了清楚,它們的子元素已被移除)。注意,下面的每一個(gè)配置小節(jié)都必須對應(yīng)有一個(gè)<configsection>中的聲明存在。每一個(gè)聲明賦予了配置小節(jié)名稱并且指出了將處理其配置信息的NGWS Framework Assembly及Class。每一配置小節(jié)包含含有ASP+細(xì)節(jié)配置設(shè)定的子元素。
以下代碼舉例說明了這些概念:
代碼:
-----------------------------------------------------------------
<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>
-------------------------------------------------------------------
此例說明了一個(gè)配置文件,它包含四個(gè)配置小節(jié)——debugmode,globalization,assemblies以及security。下面是已制定的設(shè)置:
*在debug小節(jié),調(diào)試模式被打開(設(shè)置成true)。
*在globalization小節(jié),設(shè)置了請求(Request)和回應(yīng)(Response)的編碼方式。
*在assemblies小節(jié),加入了四個(gè)assemblie。
*在security小節(jié),所有用戶均被賦予訪問權(quán)。
層次配置體系
我們曾論及,服務(wù)器上可以有多個(gè)配置文件存在于不同的目錄中。當(dāng)對一個(gè)詳細(xì)URL的請求到達(dá)時(shí),ASP+計(jì)算該URL在層次結(jié)構(gòu)風(fēng)格中的設(shè)定,并為所請求的URL使用在路徑中定位的配置文件。
例如,一個(gè)站點(diǎn)的結(jié)構(gòu)如下:
Application Root
-----SubDir1
-----SubDir2
想法是,配置應(yīng)用程序的設(shè)定使所有的用戶都可以訪問應(yīng)用程序根目錄(Application Root),使選中的用戶可以訪問兩個(gè)子目錄。
現(xiàn)在假定有一個(gè)Config.web文件在目錄SubDir1中,Application Root和SubDir2中不存在Config.web文件。在此例中實(shí)際上使用了兩個(gè)Config.web文件。最高層的Config.web文件位于 %windir%\Complus\Version 目錄,它隨NGWS SDK安裝而來,包含了默認(rèn)的設(shè)定。這個(gè)文件被認(rèn)為處于機(jī)器級別上,所有的ASP+目錄和子目錄都繼承了其設(shè)定。此文件的默認(rèn)安全小節(jié)的設(shè)定是允許所有用戶的訪問。當(dāng)例中的Application Root目錄不存在配置文件,即沒有編輯這個(gè)設(shè)定值時(shí),所有的用戶都將允許訪問此目錄,因?yàn)榇四夸浝^承了機(jī)器級別配置文件的設(shè)定。如果SubDir1目錄中的Config.web文件包含了一個(gè)安全配置小節(jié),它設(shè)定成只允許某些用戶訪問目錄,那么SubDir2目錄將繼承其設(shè)定,但是Application Root目錄并不受其影響。所以,所有的用戶可以訪問Application Root目錄,但只有某些用戶可以訪問兩個(gè)子目錄。
標(biāo)準(zhǔn)配置設(shè)定
ASP+環(huán)境自帶了一個(gè)標(biāo)準(zhǔn)的Config.web文件,它包含了一個(gè)豐富的配置設(shè)定集合。此文件位于
%windir%\ComPlus\Version 目錄。在Machine level(機(jī)器級)的配置文件中,我們可以在ASP+標(biāo)準(zhǔn)配置小節(jié)處理器下面找到標(biāo)準(zhǔn)的配置小節(jié)。
(出處:www.dev-club.com)