明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

為你的ASP程序制作一個(gè)編譯組件(下)

[摘要]使你的類開始工作既然你已經(jīng)擁有了一個(gè)能夠運(yùn)行的COM組件了,那么現(xiàn)在就是讓它參與工作的時(shí)候了.讓這個(gè)組件能在ASP中使用有幾步工作要做.第一步,修改框架(framework)中的pageDeclare.asp文件來(lái)用一個(gè)object置標(biāo)來(lái)引用這個(gè)剛剛編譯成功的組件(列表D).Listing D&l...
使你的類開始工作
既然你已經(jīng)擁有了一個(gè)能夠運(yùn)行的COM組件了,那么現(xiàn)在就是讓它參與工作的時(shí)候了.讓這個(gè)組件能在ASP中使用有幾步工作要做.第一步,修改框架(framework)中的pageDeclare.asp文件來(lái)用一個(gè)object置標(biāo)來(lái)引用這個(gè)剛剛編譯成功的組件(列表D).

Listing D
<%@ LANGUAGE="VBScript" %>
<object runat="server" progid="DBUtil.DBConnection" id="dbConnect"></object>
<%
option explicit

'<!--#include virtual="/includes/classes/dbAccess.asp"-->

dim gExpirePage
dim gPageTitle
dim gHeaderInclude
dim gBodyTagInclude

'dim dbConnect

'set dbConnect = new DBConnection

'Set defaults
gExpirePage = true
gPageTitle = "
gHeaderInclude = "
gBodyTagInclude = "
%>

object置標(biāo)是偉大的因?yàn)椴幌骎BScript對(duì)象,dll在被使用以前不會(huì)被初始化.這樣做以后,如果你的頁(yè)面使用框架但并不需要dbConnect對(duì)象,它就不會(huì)引入任何多余的動(dòng)作.注意object置標(biāo)指明了對(duì)象應(yīng)該在服務(wù)器上運(yùn)行.這是必須的以便這個(gè)置標(biāo)不會(huì)跑到瀏覽器那端去然后企圖在客戶端上創(chuàng)建這個(gè)對(duì)象.

要使這個(gè)組件工作的最后一件事情是在你計(jì)算機(jī)的注冊(cè)表里注冊(cè)它.最好的方法是使用Microsoft Transaction Server (MTS),它實(shí)際上就是Windows 2000機(jī)器上的COM+.打開控制面板然后選擇管理工具.在管理工具中,雙擊組件服務(wù)圖標(biāo).用左邊的面板瀏覽"組件服務(wù) 計(jì)算機(jī) 我的電腦 COM+應(yīng)用程序".單擊"COM+應(yīng)用程序圖標(biāo)"然后在上面右鍵單擊.從彈出菜單中選擇"新建 應(yīng)用程序".隨著提示創(chuàng)建一個(gè)空的應(yīng)用程序.然后,用任何你喜歡的名字命名這個(gè)應(yīng)用程序并確保選擇了"服務(wù)器應(yīng)用程序(Server Application)"這一項(xiàng).如果我們的組件需要訪問(wèn)ASP對(duì)象,比如Application和Session,那么這個(gè)選項(xiàng)就應(yīng)該選擇"庫(kù)應(yīng)用程序(Library Application)".但是對(duì)于數(shù)據(jù)庫(kù)訪問(wèn)來(lái)說(shuō),"服務(wù)器應(yīng)用程序"是個(gè)更好的選項(xiàng).

對(duì)于"應(yīng)用程序標(biāo)志(Application Identity)"一項(xiàng),只要你還在一個(gè)開發(fā)用的機(jī)器上并用是用IIS登錄的話,你可以選擇"交互用戶(Interactive User)".如果這是一個(gè)沒(méi)有人登錄的服務(wù)器,你就需要申明一個(gè)用戶帳號(hào).所以你需要?jiǎng)?chuàng)建一個(gè)應(yīng)用程序和組件能夠使用的安全認(rèn)證帳號(hào).這對(duì)于一個(gè)管理了一個(gè)或多個(gè)域的服務(wù)器來(lái)說(shuō)將是復(fù)雜的配置過(guò)程,因此如果你能對(duì)這個(gè)測(cè)試過(guò)程使用"交互用戶"選項(xiàng)是最好不過(guò)的了.

現(xiàn)在,你應(yīng)該能夠在左邊的面板里瀏覽你新的程序并單擊你應(yīng)用程序的組件文件夾了.要注冊(cè)你的組件,只需要打開一個(gè)Explorer窗口然后將dll拖動(dòng)到組件服務(wù)窗口右邊的面板里就行了.一個(gè)名字為DBUtil.DBConnection的圖標(biāo)就會(huì)顯現(xiàn)出來(lái),如圖E所示.


圖E

只要你去掉"set dbConnect=nothing"這一行musiclist.asp文件就準(zhǔn)備運(yùn)行了.這個(gè)調(diào)用已經(jīng)失效,因?yàn)榇藭r(shí)對(duì)象已經(jīng)由MTS管理.一旦你刪除了那一行,musiclist.asp就會(huì)象以前那樣顯示出來(lái).

總結(jié)
我希望本文向你展示了將一個(gè)VBScript對(duì)象轉(zhuǎn)換成一個(gè)Visual Basic編譯過(guò)的dll并將它用在你的ASP頁(yè)面里是多么的容易.如果我們從頁(yè)面里將"set dbConnect = nothing"這句刪除,那么從VBScript對(duì)象轉(zhuǎn)換成dll就只需要修改pageDeclare.asp文件.

編譯后的組件還缺乏適當(dāng)?shù)腻e(cuò)誤處理代碼.既然它現(xiàn)在已經(jīng)是一個(gè)Visual Basic對(duì)象了,那么你就可以使用on error goto的方式來(lái)捕捉函數(shù)中發(fā)生的任何錯(cuò)誤.一旦捕捉到了一個(gè)錯(cuò)誤,你可以要么報(bào)告這個(gè)錯(cuò)誤,要么將它記到事件記錄中去.在將來(lái)的幾節(jié)中,我們將探索如何編寫一個(gè)session對(duì)象并用常規(guī)的表達(dá)式來(lái)驗(yàn)證數(shù)據(jù).