CServiceConfig を使用した COM+ サービスの構成
CServiceConfig クラスは、コンポーネントなしで使用できる COM+ サービスを構成するために使用されます。 フリースレッド マーシャラーを集計するため、別のアパートメントで使用できます。 個々のサービスを構成するには、サービスに関連付けられているインターフェイスに対して QueryInterface を呼び出し、そのインターフェイスでメソッドを呼び出して適切な構成を確立する必要があります。 次の表では、CServiceConfig クラスを使用して実装されるインターフェイスについて説明します。
Interface | 説明 |
---|---|
IServiceInheritanceConfig |
クラスの既定のインターフェイス。 これは、多くの COM+ サービスをすばやく初期化するために使用されます。 |
IServiceComTIIntrinsicsConfig |
COM トランザクション インテグレーター (COMTI) 組み込み情報を構成するために使用されます。 COMTI を使用すると、開発者はメインフレーム ベースのトランザクション プログラムをコンポーネント ベースのアプリケーションと統合できます。 |
IServiceIISIntrinsicsConfig |
インターネット インフォメーション サービス (IIS) 組み込み情報を構成するために使用されます。 |
IServicePartitionConfig |
COM+ パーティションをサービスと共に使用する方法を構成するために使用されます。 |
IServiceSxSConfig |
サイド バイ サイド アセンブリを構成するために使用されます。 |
IServiceSynchronizationConfig |
COM+ 同期サービスを構成するために使用されます。 |
IServiceThreadPoolConfig |
COM+ サービスのスレッド プールを構成するために使用されます。 スレッド プールは、CoCreateActivity 関数を使用する場合にのみ構成できます。 |
IServiceTrackerConfig |
Tracker プロパティを構成するために使用します。 Tracker は、実行中のコードを監視するためにコードを監視するために使用されるレポート メカニズムです。 |
IServiceTransactionConfig |
COM+ トランザクション サービスを構成するために使用されます。 |
コンポーネント サービス管理
適用されません。
Visual Basic
適用されません。
C/C++
次のコード フラグメントは、COM+ トランザクションを使用するように CServiceConfig オブジェクトを作成および構成する方法を示しています。
// Create a CServiceConfig object.
HRESULT hr = CoCreateInstance(CLSID_CServiceConfig, NULL, CLSCTX_INPROC_SERVER,
IID_IUnknown, (void**)&pUnknownCSC);
if (FAILED(hr)) throw(hr);
// Query for the IServiceInheritanceConfig interface.
hr = pUnknownCSC->QueryInterface(IID_IServiceInheritanceConfig,
(void**)&pInheritanceConfig);
if (FAILED(hr)) throw(hr);
// Inherit the current context before using transactions.
hr = pInheritanceConfig->ContainingContextTreatment(CSC_Inherit);
if (FAILED(hr)) throw(hr);
// Query for the IServiceTransactionConfig interface.
hr = pUnknownCSC->QueryInterface(IID_IServiceTransactionConfig,
(void**)&pTransactionConfig);
if (FAILED(hr)) throw(hr);
// Configure transactions to always create a new one.
hr = pTransactionConfig->ConfigureTransaction(CSC_NewTransaction);
if (FAILED(hr)) throw(hr);
// Set the isolation level of the transactions to ReadCommitted.
hr = pTransactionConfig->IsolationLevel(
COMAdminTxIsolationLevelReadCommitted);
if (FAILED(hr)) throw(hr);
// Set the transaction time-out to 1 minute.
hr = pTransactionConfig->TransactionTimeout(60);
if (FAILED(hr)) throw(hr);