サービス コンポーネントの登録

サービス コンポーネントは COM+ アプリケーションにホストされるため、COM+ アプリケーションにアクセスできる必要があります。アクセシビリティを実現するため、サービス コンポーネントには次の登録要件および構成要件があります。

  • アセンブリには厳密な名前を付ける必要があります。詳細については、「厳密な名前でのアセンブリへの署名」を参照してください。

  • アセンブリは、Windows レジストリに登録する必要があります。

  • タイプ ライブラリ定義を特定の COM+ アプリケーションに登録しインストールする必要があります。

  • プログラムから追加されたサービスは、COM+ カタログで構成する必要があります。

サービス コンポーネントに便利な登録情報には、次のようなものがあります。

  • COM+ アプリケーション ID

  • アクティベーションの種類

  • 説明情報

COM+ アプリケーション ID

既存の対象の COM+ アプリケーションを、名前または GUID で識別できます。.NET サービス インストール ツール (Regsvcs.exe) には、/appname: オプションが用意され、アプリケーション名を指定できるようになっています。

アプリケーション名を指定する方法の詳細については、「方法 : ApplicationName 属性を使用してアプリケーション名を設定する」を参照してください。

アセンブリに ApplicationID 属性 (または Guid 属性) を適用する場合、アプリケーションに関するすべての検索はアプリケーション名ではなく GUID に基づいて実行されます。

アプリケーション ID を指定する方法の詳細については、「方法 : アセンブリに ApplicationID 属性を適用する」を参照してください。

Noteメモ :

動的登録で対象のアプリケーションを指定する唯一の方法は、デザイン時に ApplicationNameAttribute、ApplicationIDAttribute、または GuidAttribute 属性を適用することです。.NET サービス インストール ツール (Regsvcs.exe) には、/appname: スイッチが用意され、コンパイル時にアプリケーションの名前または GUID を指定できるようになっています。Regsvcs.exe には /parname:スイッチも用意され、特定の COM+ パーティションを識別できます。COM+ パーティション サービスは Windows Server 2003 プラットフォーム上のみで利用できます。

対象のアプリケーションが識別されない場合や見つからない場合、登録の機構が、アセンブリの完全な名前を使用してアプリケーションを作成します。バージョン番号は使用しません。

Caution note注意 :

COM+ パーティション サービスで ApplicationIDAttribute 属性を使用しないでください。COM+ パーティション サービスを使用している場合、ApplicationIDAttribute 属性を適用するとパーティションを構成できません。COM+ パーティション サービスは Windows Server 2003 プラットフォーム上のみで利用できます。

アクティベーションの種類

アクティベーションの種類によって、サービス コンポーネントが作成されるプロセスが決定されます。アセンブリに ApplicationActivationAttribute 属性を適用して、アクティベーションの種類を指定できます。ApplicationActivationAttribute 属性は、次の 2 つの列挙値のいずれかを使用して宣言する必要があります。

  • ActivationOption.Library :COM+ ライブラリ アプリケーションを指定します。アセンブリ内のサービス コンポーネントが呼び出し元のプロセスでアクティブになります。

  • ActivationOption.Server :COM+ サーバー アプリケーションを指定します。アセンブリ内のサービス コンポーネントが新しくシステムが提供するプロセスでアクティブになります。

Noteメモ :

アプリケーションのアクティベーションの種類を設定する方法の詳細については、「方法 : アプリケーションのアクティベーションの種類を設定する」を参照してください。

Noteメモ :

ApplicationActivationAttribute 属性を ActivationOption.Server に設定した場合、Windows インストーラを使用して、サーバー アプリケーションが依存するすべてのアセンブリをグローバル アセンブリ キャッシュ (GAC) に追加してから、サーバー アプリケーションを使用してください。追加しなければ、アプリケーションによって例外が生成されます。さらに ApplicationActivationAttribute 属性を ApplicationOption.Server に設定した場合、サービス コンポーネントのパラメータは System.Serializable としてマークされるか、System.MarshalByRefObject クラスから派生する必要があります。そうでない場合、例外が生成されます。

説明情報

説明は任意ですか、類似のアセンブリを識別するのに便利な場合があります。

アプリケーションのアクティベーションの種類を設定する方法の詳細については、「方法 : アセンブリに Discription 属性を適用する」を参照してください。

このセクションの次のトピックでは、COM+ サービスを使用するアプリケーションを配置するための登録機構について説明します。

どちらの登録機構も、サービス コンポーネントの登録に必要な手順をまとめることにより、登録プロセスを簡単にします。いずれの場合も、コンポーネント ユーザーは Administrator グループのメンバである必要があります。動的登録の場合は、デザイン時に登録情報を指定できます。一部はコンパイル時にも指定できます。手動登録の場合は、デザイン時、コンパイル時、登録時に登録情報を指定できます。登録情報を省略した場合は、登録プロセスによってメタデータから生成されます。登録プロセスは、互換性のない属性の組み合わせを検出し、場合によっては修正します。

関連項目

タスク

方法 :サービス コンポーネントを作成する

参照

ApplicationNameAttribute
ApplicationIDAttribute
GuidAttribute
ApplicationActivationAttribute
DescriptionAttribute
System.EnterpriseServices Namespace

概念

サービス コンポーネントの概要
COM+ サービスを構成する属性の適用
サービス コンポーネントの例
利用可能な COM+ サービスの概要

その他の技術情報

サービス コンポーネントの作成
Extending Metadata Using Attributes

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.