Поделиться через


Настройка служб COM+ с помощью CServiceConfig

Класс CServiceConfig используется для настройки служб COM+, которые можно использовать без компонентов. Он агрегирует маршалер свободного потока, поэтому его можно использовать в разных квартирах. Чтобы настроить отдельную службу, необходимо вызвать QueryInterface для интерфейса, связанного с службой, а затем вызвать методы в этом интерфейсе, чтобы установить соответствующую конфигурацию. В следующей таблице описываются интерфейсы, реализованные с помощью класса CServiceConfig .

Интерфейс Description
IServiceInheritanceConfig
Интерфейс по умолчанию для класса. Он используется для быстрой инициализации многих служб COM+.
IServiceComTIIntrinsicsConfig
Используется для настройки встроенных сведений об интеграторе транзакций COM (COMTI). COMTI позволяет разработчикам интегрировать программы транзакций на основе мейнфрейма с приложениями на основе компонентов.
IServiceIISIntrinsicsConfig
Используется для настройки встроенных сведений о службы IIS (IIS).
IServicePartitionConfig
Используется для настройки использования секций COM+ со службами.
IServiceSxSConfig
Используется для настройки параллельных сборок.
IServiceSynchronizationConfig
Используется для настройки служб синхронизации COM+.
IServiceThreadPoolConfig
Используется для настройки пула потоков для службы COM+. Пул потоков можно настроить только при использовании функции CoCreateActivity.
IServiceTrackerConfig
Используется для настройки свойства Tracker. Средство отслеживания — это механизм создания отчетов, используемый в коде мониторинга для отслеживания того, какой код выполняется при выполнении.
IServiceTransactionConfig
Используется для настройки службы транзакций COM+ .

Средство Администратор istrative Services

Не применяется.

Visual Basic

Не применяется.

C/C++

В следующем фрагменте кода показано, как создать и настроить объект CServiceConfig для использования транзакций 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

Использование служб COM+ с помощью CoCreateActivity

Использование служб COM+ через CoEnterServiceDomain и CoLeaveServiceDomain