如何: 在 Visual C#.NET 中建立服務的.NET 元件

文章翻譯 文章翻譯
文章編號: 306296 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

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

重要附註

  • 服務的元件需要強式名稱。
  • 因為它們是系統層級的資源,服務的元件應該登錄在全域組件快取 (GAC)。伺服器應用程式需要安裝在 GAC 中的,但程式庫應用程式做不 (雖然它建議選項)。
  • 自動透過延遲登錄或以手動方式透過 Regsvcs.exe 公用程式,您可以使用 COM + 登錄服務的元件。Regsvcs.exe 位於下列資料夾中:
    \WINNT\Microsoft.NET\Framework\ <架構版本 >
    如需有關 Regsvcs.exe 的詳細資訊,請參閱 Microsoft.NET Framework 軟體開發套件 (SDK) 文件。
  • 這個範例假設本機電腦上已經安裝 Microsoft SQL Server。
  • 這個範例是僅供說明之用。嚴格說此範例選取查詢是因為 COM + 交易的會使用最高的隔離層級執行 COM + 交易之外的良好候選。若要改善資料庫輸送量,是良好的程式設計考慮將較低的交易層級的讀取的查詢的作法。

建立服務的.NET 元件

  1. 建立新的 Visual C# 類別庫專案,名為 ServicedCOM。
  2. 重新命名您的預設類別和 SimpleTrans.cs 來從 Class1.cs 檔名。要這麼做,請您執行下列步驟:
    1. 在 [類別檢視] 視窗中以滑鼠右鍵按一下 [類別 1,然後按一下 [內容]。
    2. 在 [內容,變更 [名稱] 屬性來 SimpleTrans
  3. 加入 System.EnterpriseServices 命名空間的參考。
  4. 加入下列陳述式至 SimpleTrans.csAssemblyInfo.cs 都做最上方的線條:
    using System.EnterpriseServices;
    SimpleTrans.cs 頂端加入下列的陳述式:
    using System.Data.SqlClient;
  5. 您的類別繼承 ServicedComponent (完整限定的名稱: System.EnterpriseServices.ServicedComponent)。
  6. 之前加入下列程式碼在 * 公用類別 * 宣告:
    [Transaction(TransactionOption.RequiresNew)]
    					
  7. 新增下列建議屬性要 AssemblyInfo.cs
    [assembly: ApplicationActivation(ActivationOption.Library)]
    [assembly: ApplicationName("SimpleTrans")]	
    					
    • ActivationOption 屬性表示是否要元件啟動呼叫者的處理序中。您可以將設定 Activation.Option程式庫伺服器
    • ApplicationName 屬性是 COM + 應用程式,在 COM + 類別目錄] 和 [元件服務管理主控台中出現的名稱。
  8. 將下列的選擇性屬性加入至 SimpleTrans.cs,只在使用之後陳述式:
    [assembly: Description("Simple Transactional application to show Enterprise Services")]
    						
    這個屬性提供描述 COM + 應用程式,在 COM + 類別目錄] 及 [元件服務管理主控台。
  9. 將下列方法加入至 SimpleTrans.cs
    // Demos Explicit SetComplete/SetAbort
            public string DoTrans()
            {
                SqlConnection	connection;
                SqlCommand		command; 
                SqlDataReader	reader;
                string		name;
                string		query;
    		
                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(Exception exc)
                {
                    ContextUtil.SetAbort();
                    throw exc;
                }
                return name;
        }
    // Demo implicit SetComplete/SetAbort
    [AutoComplete]
    public void DoTxAuto()
    {
        // Do stuff
    }
    					
  10. 修改 SqlConnection 字串,使之適用於您的環境。

提供您的組件強式名稱

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

    具有強式名稱簽署的組件資訊請參閱.NET Framework 軟體開發套件 (SDK) 文件。
  3. 將 ServicedCOM.snk 複製到專案資料夾中。
  4. 在 AssemblyInfo.cs,以下列程式碼取代 AssemblykeyFile 程式碼:
    [assembly: AssemblyKeyFile("..\\..\\ServicedCOM.snk")]
    					

新增到 COM + 的服務的元件

您可以允許在建立第一個執行個體,或您可以手動登錄元件使用 Regsvcs.exe 時動態地登錄的元件。若要用以 Regsvcs.exe 請依照下列步驟執行:
  1. 按一下 [開始],指向 [程式集]、 指向 [Microsoft Visual Studio.NET]、 指向 Visual Studio.NET 工具,然後再按一下 [Visual Studio.NET 命令提示字元]。
  2. 在的命令提示字元輸入 [regsvcs servicedcom.dll]。這會以相同的名稱與類別名稱建立 COM + 程式庫應用程式。忽略警告訊息。

測試您的元件

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

屬性

文章編號: 306296 - 上次校閱: 2003年9月18日 - 版次: 4.1
這篇文章中的資訊適用於:
  • Microsoft Enterprise Services (included with the .NET Framework) 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
關鍵字:?
kbmt kbhowtomaster KB306296 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:306296
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