如何在 Visual Basic.NET 或 Visual Basic 2005 中建立服務的.NET 元件

文章翻譯 文章翻譯
文章編號: 312902 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何建立服務的.NET 元件所使用的交易。本文也會示範如何建立測試服務的元件的用戶端。Microsoft 企業服務提供 Microsoft COM + 服務對.NET 元件。

重要注意事項

  • 使用服務元件的強式名稱。
  • 註冊服務的元件中全域組件快取 (GAC) 因為它們是系統層級的資源。安裝在 GAC 中的伺服器應用程式。Microsoft 建議您在 GAC 中註冊程式庫應用程式雖然這不是一項需求。
  • 您可以使用下列方法之一來使用 COM + 登錄服務的元件:
    • 您可以使用延遲登錄來自動註冊服務的元件。
    • 使用 Regsvcs.exe 公用程式,手動登錄服務的元件。Regsvcs.exe 位於下列資料夾中:
      \WINNT\Microsoft.NET\Framework\ Framework Version
      更多有關 Regsvcs.exe,請參閱 Microsoft.NET Framework 軟體開發套件 (SDK) 文件。
  • 若要使用本文中的範例在本機電腦上安裝 Microsoft SQL Server。
  • 這個範例是僅供說明之用。您可以使用 COM + 交易外,範例中顯示,因為 COM + 交易的會使用最高的隔離層級的 SELECT 查詢。若要改善資料庫輸送量,使用 [較低的交易層級的 [讀取查詢]。

建立服務的.NET 元件

  1. 建立新的 Visual Basic 類別庫專案,並命名 ServicedCOM
  2. 重新命名 VBServCom 預設類別。
  3. 加入 System.EnterpriseServices 命名空間的參考。
  4. 輸入或貼上下列程式碼類別陳述式之前:
    Imports System.EnterpriseServices
    Imports System.Data.SqlClient
    					
  5. 將下列程式碼加入類別陳述式之後:
        Inherits EnterpriseServices.ServicedComponent
    					
  6. 加入下列程式碼,類別陳述式之前 (不要忘記行接續字元"_"):
    <Transaction(TransactionOption.RequiresNew)> _
    					
  7. 將下列屬性加入至 AssemblyInfo.vb 檔:
    <assembly: ApplicationActivation(ActivationOption.Library)>
    <assembly: ApplicationName("SimpleTrans")>
    						
    注意
    • ActivationOption 屬性指出元件是否將呼叫者的處理序啟動。您可以設定 Activation.Option程式庫伺服器
    • ApplicationName 屬性是 COM + 應用程式,在 COM + 類別目錄] 和 [元件服務管理主控台中出現的名稱。
  8. 將下列的選擇性屬性加入至 [AssemblyInfo.vb 檔案:
    <Assembly: Description("Simple Transactional application to show Enterprise Services")>
    						
    這個屬性提供描述 COM + 應用程式,在 COM + 類別目錄] 及 [元件服務管理主控台。
  9. 將下列方法加入至預設 Class1.vb 或 VBServCom.vb 檔,如果您重新命名檔案和類別:
        ' Shows Explicit SetComplete/SetAbort.
        Public Function DoTrans() As String
            Dim connection As SqlConnection
            Dim command As SqlCommand
            Dim reader As SqlDataReader
            Dim name As String
            Dim query As String
    
            Try
                query = "SELECT au_lname, au_fname FROM authors"
                connection = New SqlConnection("data source=localhost;initial catalog = pubs;UID=sa;PWD=")
                command = New SqlCommand(query, connection)
    
                connection.Open()
                reader = command.ExecuteReader()
    
                reader.Read()
                name = reader.GetString(0) & ", " & reader.GetString(1)
            Catch exc As Exception
                ContextUtil.SetAbort()
                Throw exc
            End Try
            DoTrans = name
        End Function
    
        ' Show implicit SetComplete/SetAbort.
        <AutoComplete(True)> _
        Public Sub DoTxAuto()
            'Do stuff
        End Sub
    					
  10. 修改您的環境 SqlConnection 字串。

提供您的組件強式名稱

  1. 按一下 [開始],指向 [程式集]、 指向 [Microsoft Visual Studio.NET,然後再按一下 [Visual Studio.NET 工具 以開啟 Visual Studio.NET 命令提示字元。
  2. 在命令提示字元下輸入下列命令:
    sn.exe k ServicedCOM.snk
    這可讓您的組件強式名稱。

    如需有關 Regsvcs.exe 的詳細資訊,請參閱 Microsoft.NET Framework 軟體開發套件 (SDK) 文件。
  3. 將 ServicedCOM.snk 複製到專案資料夾中。
  4. AssemblyInfo.vb] 檔案中以下列的程式碼取代 AssemblykeyFile 程式碼:
    <Assembly: AssemblyKeyFile("..\\..\\ServicedCOM.snk")>
    					

新增到 COM + 的服務的元件

您註冊此元件以動態方式建立第一個執行個體時。或者您可以利用 Regsvcs.exe 手動註冊元件。若要用以 Regsvcs.exe 請依照下列步驟執行:
  1. 按一下 [開始],指向 [程式集]、 指向 Microsoft Visual Studio.NET,然後再按一下 [Visual Studio.NET 工具 以開啟.NET 命令提示字元]。
  2. 在一個.NET 命令提示字元下鍵入 [regsvcs servicedcom.dll]。

    這會以相同的名稱與類別名稱建立 COM + 程式庫應用程式。

測試您的元件

  1. 在 Microsoft [記事本] 中開啟 [文字檔案]。
  2. 將下列程式碼複製到檔案:
    set o =createobject("VBServCOM.VBServCOM")
    
    MsgBox o.DoTrans()
    					
  3. 在 [檔案] 功能表上按一下 [儲存]。
  4. 在 [檔案名稱] 方塊中,輸入 Test.vbs。在 檔案類型] 清單按一下 [所有檔案,] 然後按一下 [儲存]。
  5. 按兩下檔案以執行範例。

屬性

文章編號: 312902 - 上次校閱: 2014年2月24日 - 版次: 5.5
這篇文章中的資訊適用於:
  • Microsoft Enterprise Services (included with the .NET Framework) 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic 2005
關鍵字:?
kbnosurvey kbarchive kbmt kbhowtomaster KB312902 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:312902
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com