Visual Basic.NET または Visual Basic 2005 でサービス .NET コンポーネントを作成する方法

文書翻訳 文書翻訳
文書番号: 312902 - 対象製品
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

目次

概要

この資料では、トランザクションを使用するサービス .NET コンポーネントの作成方法について手順を追って説明します。また、サービス コンポーネントをテストするクライアントの作成方法についても説明します。Microsoft Enterprise Services は、Microsoft COM+ サービスに対して .NET コンポーネントを提供するものです。

注意事項

  • サービス コンポーネントには厳密な名前を使用します。
  • サービス コンポーネントはシステム レベルのリソースであるため、グローバル アセンブリ キャッシュ (GAC) に登録します。GAC にサーバー アプリケーションをインストールします。マイクロソフトでは、ライブラリ アプリケーションを GAC に登録することをお勧めします (ただし、これは必須ではありません)。
  • COM+ によるサービス コンポーネントの登録には、次のいずれかの方法を使用できます。
    • レイジー登録を使用してサービス コンポーネントを自動的に登録する方法。
    • Regsvcs.exe ユーティリティを使用してサービス コンポーネントを手動で登録する方法。Regsvcs.exe は次のフォルダにあります。
      \WINNT\Microsoft.NET\Framework\Framework Version
      Regsvcs.exe の詳細については、Microsoft .NET Framework SDK (Software Development Kit) のドキュメントを参照してください。
  • Microsoft SQL Server をローカル コンピュータにインストールして、この資料の例を使用します。
  • このサンプルは説明のみを目的としています。COM+ はトランザクションに対して最も高い分離レベルを適用するため、このサンプルに示した SELECT クエリは COM+ トランザクションの外部で実行することができます。データベースのスループット向上のため、より低いレベルのトランザクションには READ クエリを使用します。

サービス .NET コンポーネントを作成する

  1. ServicedCOM という名前で、Visual Basic クラス ライブラリ プロジェクトを新規作成します。
  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 は Library または Server に設定できます。
    • ApplicationName 属性は、COM+ カタログとコンポーネント サービス Microsoft 管理コンソール (MMC) スナップインで COM+ アプリケーションを表示するときに使用する名前です。
  8. 次のオプションの属性を AssemblyInfo.vb ファイルに追加します。
    <Assembly: Description("Simple Transactional application to show Enterprise Services")>
    						
    この属性は、COM+ カタログとコンポーネント サービス MMC スナップインで、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 (Software Development Kit) のドキュメントを参照してください。
  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.1
この資料は以下の製品について記述したものです。
  • 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 kbhowtomaster KB312902
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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