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

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

312902
本文已封存。本文係以「現狀」提供且不會再更新。
本文章的有 Microsoft Visual C#.NET] 版本請參閱 306296
本文章的有 Microsoft Visual C++.NET] 版本請參閱 309108
本文章的有 Microsoft Visual Basic 6.0] 版本請參閱 250292

在此工作

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

back to the top

重要注意事項

  • 使用服務元件的強式名稱。
  • 註冊服務的元件中全域組件快取 (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 查詢。若要改善資料庫輸送量,使用 [較低的交易層級的 [讀取查詢]。
back to the top

建立服務的.NET 元件

  1. 建立新的 Visual Basic 類別庫專案,並命名 ServicedCOM
  2. 重新命名 VBServCom 預設類別。
  3. 加入 System.EnterpriseServices 命名空間的參考。
  4. 輸入或貼上下列程式碼類別陳述式之前:
    Imports System.EnterpriseServicesImports 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 字串。
back to the top

提供您的組件強式名稱

  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")>					
back to the top

新增到 COM + 的服務的元件

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

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

測試您的元件

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

警告:本文已自動翻譯

內容

文章識別碼:312902 - 最後檢閱時間:02/24/2014 12:54:17 - 修訂: 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
意見反應