在默认上下文中强制激活

配置的 COM 组件通常在其自己的上下文中激活;即 COM+ 引用组件目录信息以提供任何已配置的服务。 但是,可以选择在默认上下文中激活已配置的组件。 基本 COM 组件(没有 COM+ 目录信息的已注册组件)通常在默认上下文中激活。

在默认上下文中激活 COM 组件可提供三个主要的性能优势,如下所示:

  • 通过限制创建的上下文数量,可以节省系统资源。
  • 可以通过限制跨上下文调用的数量来提高性能。 由于跨上下文的调用需要封送处理,因此在默认上下文中激活的 COM 对象在默认上下文对其他对象进行调用的速度要快得多。 在这种情况下(同一上下文中的调用)的性能类似于调用子例程的性能。
  • 可以将较旧的 COM 应用程序导入 COM+ 并运行它们,而不会出现问题。 例如,你可能有几个较旧的 COM 应用程序是在假定允许在单元内传递对象引用而不封送这些引用的情况下实现的。 这些 COM 应用程序在导入 COM+ 时不起作用,因为对象引用跨上下文边界传递。 但是,如果使用组件服务管理工具将应用程序中的所有类标记为必须在默认上下文中激活,则可以在导入时运行这种类型的 COM 应用程序。

在默认上下文中激活已配置组件的主要缺点是 COM+ 不提供组件的任何已配置服务。 在性能增强和使用 COM+ 服务的能力之间存在权衡。

例如,假设 COM 组件不需要任何 COM+ 服务(例如,事务实时激活事件排队组件同步对象池),并且该组件对其他可能在默认上下文中激活的 COM 组件进行了多次调用。 在这种情况下,最好在默认上下文中激活调用组件。

如果 COM 组件需要 COM+ 服务,则不能将其标记为必须在默认上下文中激活。 此外,如果在默认上下文中激活的 COM 对象对其他上下文中的对象进行多次调用,则不会获得真正的性能提升。 (有关详细信息,请参阅上下文。)

在默认上下文中强制激活

  1. 在组件服务管理工具的详细信息窗格中,右键单击要在默认上下文中激活的组件(位于任何选定 COM+ 应用程序的 Components 文件夹中),然后单击属性

  2. 在“组件属性”对话框中,单击激活选项卡。

  3. 选择必须在默认上下文中激活复选框。

  4. 单击 “确定”

注意

在默认上下文中运行配置的组件时,COM+ 不会激活该组件的任何已配置服务。 当取消选中必须在默认上下文中激活复选框,然后在其自己的上下文中运行配置的组件时,这些服务将再次可用。

 

COM+ 实时激活概念

在调用方上下文中强制激活