Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Настроенный COM-компонент обычно активируется в своём контексте; то есть COM+ ссылается на сведения каталога компонента, чтобы предоставить настроенные службы. Однако можно активировать настроенный компонент в контексте по умолчанию. Базовый COM-компонент — зарегистрированный компонент, не имеющий сведений о каталоге COM+, обычно активируется в контексте по умолчанию.
Активация COM-компонента в контексте по умолчанию обеспечивает три основных преимущества производительности, как показано ниже.
- Вы сохраняете системные ресурсы путем ограничения количества созданных контекстов.
- Вы повышаете производительность, ограничивая количество межконтекстных вызовов. Поскольку вызовы между контекстами требуют маршалинга, COM-объект, активированный в контексте по умолчанию, может гораздо быстрее вызывать другие объекты в том же контексте. Производительность в этом случае (вызовов в том же контексте) аналогична вызову подпрограммы.
- Старые приложения COM можно импортировать в COM+ и запустить их без проблем. Например, у вас может быть несколько старых COM-приложений, реализованных в соответствии с предположением о том, что можно было передавать ссылки на объекты в квартире без маршалинга ссылок. Эти COM-приложения не работают при импорте в COM+, так как ссылки на объекты передаются через границы контекста. Однако можно запустить этот тип приложения COM при импорте, если вы используете средство администрирования служб компонентов, чтобы пометить все классы в приложении как необходимо активировать в контексте по умолчанию.
Основным недостатком активации настроенного компонента в контексте по умолчанию является то, что COM+ не предоставляет ни одной из настроенных служб компонента. Существует компромисс между улучшенной производительностью и возможностью использования служб COM+.
Например, предположим, что компонент COM не требует каких-либо служб COM+ (например, Транзакции, Активация JIT, События, Компоненты очередей, Синхронизацияили Пул объектов) и что компонент выполняет ряд вызовов другим COM-компонентам, которые могут быть активированы в контексте по умолчанию. В этом случае рекомендуется активировать вызывающий компонент в контексте по умолчанию.
Если компонент COM требует служб COM+, его нельзя помечать как должен быть активирован в контексте по умолчанию. Кроме того, при активации COM-объекта в контексте по умолчанию реальные показатели производительности отсутствуют, если в контексте по умолчанию выполняется ряд вызовов объектов в других контекстах. (Дополнительные сведения см. в разделе Контексты.)
Принудительная активация в контексте по умолчанию
В области деталей средства администрирования служб компонентов щелкните правой кнопкой мыши компонент (расположенный в папке Компоненты любого выбранного приложения COM+), который вы хотите активировать в контексте по умолчанию, а затем щелкните Свойства.
В диалоговом окне свойств компонента щелкните на вкладку «Активация».
Выберите флажок "Должен быть активирован в стандартном контексте".
Нажмите кнопку ОК.
Заметка
При запуске настроенного компонента в контексте по умолчанию COM+ не активирует какие-либо настроенные службы для этого компонента. Эти службы снова становятся доступными, если снять флажок Должен быть активирован в контексте по умолчанию, а затем запустить настроенный компонент в его собственном контексте.
Связанные разделы