Configuration des services COM+ avec CServiceConfig
La classe CServiceConfig est utilisée pour configurer les services com+ qui peuvent être utilisés sans composants. Il agrège le marshaleur libre de threads, afin qu’il puisse être utilisé dans différents cloisonnements. Pour configurer un service individuel, vous devez appeler QueryInterface pour l’interface associée au service, puis appeler des méthodes sur cette interface pour établir la configuration appropriée. Le tableau suivant décrit les interfaces qui sont implémentées par le biais de la classe CServiceConfig .
| Interface | Description |
|---|---|
| IServiceInheritanceConfig |
Interface par défaut de la classe. Elle est utilisée pour initialiser rapidement un grand nombre des services COM+. |
| IServiceComTIIntrinsicsConfig |
Utilisé pour configurer les informations intrinsèques de l’COM Transaction Integrator (COMTI). COMTI permet aux développeurs d’intégrer des programmes de transaction basés sur des macroordinateurs à des applications basées sur des composants. |
| IServiceIISIntrinsicsConfig |
utilisé pour configurer les informations intrinsèques du Internet Information Services (IIS). |
| IServicePartitionConfig |
Utilisé pour configurer le mode d’utilisation des partitions COM+ avec les services. |
| IServiceSxSConfig |
Utilisé pour configurer des assemblys côte à côte. |
| IServiceSynchronizationConfig |
Utilisé pour configurer les services de synchronisation COM+. |
| IServiceThreadPoolConfig |
Utilisé pour configurer le pool de threads pour le service COM+. Le pool de threads ne peut être configuré que lors de l’utilisation de la fonction CoCreateActivity . |
| IServiceTrackerConfig |
Utilisé pour configurer la propriété tracker. Tracker est un mécanisme de création de rapports utilisé par le code de surveillance pour surveiller le code en cours d’exécution. |
| IServiceTransactionConfig |
Utilisé pour configurer le service de transactions COM+. |
Outil d’administration Services de composants
Non applicable.
Visual Basic
Non applicable.
C/C++
Le fragment de code suivant illustre la création et la configuration d’un objet CServiceConfig pour utiliser des transactions com+.
// 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);