明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

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

[摘要]使你的類開始工作既然你已經(jīng)擁有了一個能夠運行的COM組件了,那么現(xiàn)在就是讓它參與工作的時候了.讓這個組件能在ASP中使用有幾步工作要做.第一步,修改框架(framework)中的pageDeclare.asp文件來用一個object置標來引用這個剛剛編譯成功的組件(列表D).Listing D&l...
使你的類開始工作
既然你已經(jīng)擁有了一個能夠運行的COM組件了,那么現(xiàn)在就是讓它參與工作的時候了.讓這個組件能在ASP中使用有幾步工作要做.第一步,修改框架(framework)中的pageDeclare.asp文件來用一個object置標來引用這個剛剛編譯成功的組件(列表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置標是偉大的因為不象VBScript對象,dll在被使用以前不會被初始化.這樣做以后,如果你的頁面使用框架但并不需要dbConnect對象,它就不會引入任何多余的動作.注意object置標指明了對象應該在服務器上運行.這是必須的以便這個置標不會跑到瀏覽器那端去然后企圖在客戶端上創(chuàng)建這個對象.

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

對于"應用程序標志(Application Identity)"一項,只要你還在一個開發(fā)用的機器上并用是用IIS登錄的話,你可以選擇"交互用戶(Interactive User)".如果這是一個沒有人登錄的服務器,你就需要申明一個用戶帳號.所以你需要創(chuàng)建一個應用程序和組件能夠使用的安全認證帳號.這對于一個管理了一個或多個域的服務器來說將是復雜的配置過程,因此如果你能對這個測試過程使用"交互用戶"選項是最好不過的了.

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


圖E

只要你去掉"set dbConnect=nothing"這一行musiclist.asp文件就準備運行了.這個調(diào)用已經(jīng)失效,因為此時對象已經(jīng)由MTS管理.一旦你刪除了那一行,musiclist.asp就會象以前那樣顯示出來.

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

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