5个实用的ASP网站功能(GIB5)

网络整理 - 09-11
如果喜欢我就继续,如不喜欢就删掉吧。

5個實用網站功能速成

刊登於RUN!PC 1999/2月號

作者 喬篷科技 周世雄

本文重點

在前幾期的IIS 4.0專欄當中,我們看到了威力強大的IIS(Internet Information Server)4.0之30個特異功能、SSL與數位認證、如何使用ASP設計一個生動的網站、如何將Web資料庫化、IIS 4.0網站進階管理、如何將網站元件化、Transaction Server三層式架構技術速成、和SQL Server 7.0網站資料庫的技術等單元。本期將探討5個實用的ASP網站功能。

筆者為微軟台北廳、經銷商訓練、TechNet等研討會講師,和微軟之友、RUN!PC雜誌專欄作者,著作有「ASP網站熱門應用技術」、「微軟熱門Web技術速成班」等網站網頁設計十幾本電腦書籍。現任「喬篷科技」公司總經理,從事Internet、Intranet之Web資料庫應用設計、網站網頁規劃架設等服務。

IIS 4.0示範網站:

連絡E-mail:[email protected]。

 

5個實用的ASP網站功能

前幾期學會了如何將網站asp化、資料庫化、和元件化的「網站3化」後,本期將教您如何善用5個實用的ASP網站功能。

5個實用的ASP網站功能如下:


Transaction功能:「同生共死」的異動(Transaction)功能。


SSL功能:安全傳輸。


Message Queue功能:非同步處理功能。


中文全文檢索功能。


郵件傳送功能。

 

網站如何加入Transaction功能呢?

如何於您的網站加入異動(Transaction)功能呢?

IIS(Internet Information Server)與MTS(Microsoft Transaction Server)緊密整合,資料庫更動可以有「同生共死」的異動(Transaction)功能。

當asp程式中所有的資料庫更動都成功時,才算成功;有一個資料庫的更動失敗時,已經更動的資料庫資料將自動恢復(rollback),這就是所謂的異動(Transaction)功能。

譬如從甲帳戶匯款到乙帳戶時,若乙帳戶的資料庫更動失敗時,已經更動甲帳戶的資料庫資料將自動恢復(rollback)。數個資料庫的資料更動,不是「同生」,就是「共死」。

並不是所有資料庫都提供異動(Transaction)的功能,Access沒有提供,SQL Server和Oracle則提供異動(Transaction)的功能。

asp程式中異動(Transaction)功能的有效範圍為一個asp程式,換句話說,這個asp程式中所有的資料庫更動都具有異動(Transaction)功能。

如何於asp程式中告訴IIS要做異動(Transaction)功能的處理呢?

方法為於asp程式碼當中的第一行加入「TRANSACTION=Required」,告訴IIS這一個asp程式使用異動(Transaction)功能的處理方式,asp程式如下:

<%@ TRANSACTION=Required LANGUAGE="VBscript" %>

若此asp程式內所有程式(包括更新數個資料庫)執行成功時,將呼叫OnTransactionCommit()副程式。若執行失敗(包括更新任何一個資料庫失敗)時,將呼叫OnTransactionAbort()副程式。

您可以呼叫SetComplete方法表示執行成功,或呼叫SetAbort方法表示執行失敗。

譬如asp檔案如下:

<%@ TRANSACTION=Required LANGUAGE="VBscript" %>

...

<% Set obj1 = Server.CreateObject("testobj.cls1") %>

<% = obj1.data3t(1,10) %>

<%

Sub OnTransactionCommit()



end sub

Sub OnTransactionAbort()



end sub

%>

設計有Transaction功能的元件

如何設計有異動(Transaction)功能的元件呢?

方法為ActiveX DLL中使用asp的ObjectContext物件,譬如說於Visual Basic 的ActiveX DLL定義如下:

Dim objContext As ObjectContext

Set objContext = GetObjectContext()

執行成功時,呼叫SetComplete方法,執行失敗時呼叫SetAbort方法以釋放資源。

譬如說於Visual Basic 的ActiveX DLL,其Visual Basic程式碼如下:

Function data3t(input1, points)

On Error GoTo Error1

Dim objContext As ObjectContext

Set objContext = GetObjectContext()

...

objContext.SetComplete

Exit Function

Error1:

objContext.SetAbort

End Function