為你的ASP程式製作一個編譯組件(下)
來源:互聯網
上載者:User
使你的類開始工作
既然你已經擁有了一個能夠啟動並執行COM組件了,那麼現在就是讓它參與工作的時候了.讓這個組件能在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置標指明了對象應該在伺服器上運行.這是必須的以便這個置標不會跑到瀏覽器那端去然後企圖在用戶端上建立這個對象.
要使這個組件工作的最後一件事情是在你電腦的註冊表裡註冊它.最好的方法是使用Microsoft Transaction Server (MTS),它實際上就是Windows 2000機器上的COM+.開啟控制台然後選擇管理工具.在管理工具中,雙擊元件服務表徵圖.用左邊的面板瀏覽"元件服務|電腦|我的電腦|COM+應用程式".單擊"COM+應用程式圖示"然後在上面按右鍵.從快顯功能表中選擇"建立|應用程式".隨著提示建立一個空的應用程式.然後,用任何你喜歡的名字命名這個應用程式並確保選擇了"伺服器應用程式(Server Application)"這一項.如果我們的組件需要訪問ASP對象,比如Application和Session,那麼這個選項就應該選擇"庫應用程式(Library Application)".但是對於資料庫訪問來說,"伺服器應用程式"是個更好的選項.
對於"應用程式標誌(Application Identity)"一項,只要你還在一個開發用的機器上並用是用IIS登入的話,你可以選擇"互動使用者(Interactive User)".如果這是一個沒有人登入的伺服器,你就需要申明一個使用者帳號.所以你需要建立一個應用程式和組件能夠使用的安全認證帳號.這對於一個管理了一個或多個域的伺服器來說將是複雜的配置過程,因此如果你能對這個測試過程使用"互動使用者"選項是最好不過的了.
現在,你應該能夠在左邊的面板裡瀏覽你新的程式並單擊你應用程式的組件檔案夾了.要註冊你的組件,只需要開啟一個Explorer視窗然後將dll拖動到元件服務視窗右邊的面板裡就行了.一個名字為DBUtil.DBConnection的表徵圖就會顯現出來,如圖E所示.
圖E
只要你去掉"set dbConnect=nothing"這一行musiclist.asp檔案就準備運行了.這個調用已經失效,因為此時對象已經由MTS管理.一旦你刪除了那一行,musiclist.asp就會象以前那樣顯示出來.
總結
我希望本文向你展示了將一個VBScript對象轉換成一個Visual Basic編譯過的dll並將它用在你的ASP頁面裡是多麼的容易.如果我們從頁面裡將"set dbConnect = nothing"這句刪除,那麼從VBScript對象轉換成dll就只需要修改pageDeclare.asp檔案.
編譯後的組件還缺乏適當的錯誤處理代碼.既然它現在已經是一個Visual Basic對象了,那麼你就可以使用on error goto的方式來捕捉函數中發生的任何錯誤.一旦捕捉到了一個錯誤,你可以要麼報告這個錯誤,要麼將它記到事件記錄中去.在將來的幾節中,我們將探索如何編寫一個session對象並用常規的運算式來驗證資料.