Настройка служб 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);