Compartilhar via


Configurando serviços COM+ com CServiceConfig

A classe CServiceConfig é usada para configurar os serviços COM+ que podem ser usados sem componentes. Ele agrega o marshaler de rosca livre, para que possa ser usado em diferentes apartamentos. Para configurar um serviço individual, você deve chamar QueryInterface para a interface associada ao serviço e, em seguida, chamar métodos nessa interface para estabelecer a configuração apropriada. A tabela a seguir descreve as interfaces que são implementadas por meio da classe CServiceConfig .

Interface Descrição
IServiceInheritanceConfig
A interface padrão para a classe. Ele é usado para inicializar rapidamente muitos dos serviços COM+.
IServiceComTIIntrinsicsConfig
Usado para configurar as informações intrínsecas do COMTI (COM Transaction Integrator). O COMTI permite que os desenvolvedores integrem programas de transação baseados em mainframe com aplicativos baseados em componentes.
IServiceIISIntrinsicsConfig
Usado para configurar as informações intrínsecas dos Serviços de Informações da Internet (IIS).
IServicePartitionConfig
Usado para configurar como as partições COM+ são usadas com os serviços.
IServiceSxSConfig
Usado para configurar montagens lado a lado.
IServiceSynchronizationConfig
Usado para configurar serviços de sincronização COM+.
IServiceThreadPoolConfig
Usado para configurar o pool de threads para o serviço COM+. O pool de threads pode ser configurado somente ao usar a função CoCreateActivity.
IServiceTrackerConfig
Usado para configurar a propriedade Tracker. O Tracker é um mecanismo de relatório usado pelo código de monitoramento para observar qual código está sendo executado quando.
IServiceTransactionConfig
Usado para configurar o serviço de transação COM+.

Ferramenta administrativa de serviços de componentes

Não se aplica.

Visual Basic

Não se aplica.

C/C++

O fragmento de código a seguir ilustra como criar e configurar um objeto CServiceConfig para usar transações 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);

CServiceConfig

Usando serviços COM+ por meio do CoCreateActivity

Usando serviços COM+ por meio de CoEnterServiceDomain e CoLeaveServiceDomain