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