应用程序设计限制

某些应用程序的设计方式可防止在计算机上安装应用程序的多个实例。 由于这种限制,应用程序不能使用分区功能。 在分区可用于该应用程序之前,可能需要修改以下应用程序设计功能。

表和数组

某些应用程序创建使用 CLSID 作为唯一注册表项的数据库表、内存中表或数组。 在没有分区的计算机上,此注册表项通常是计算机/CLSID(每台计算机一个 CLSID)。

相反,在具有分区的计算机上,此注册表项是计算机/分区 ID/应用程序 ID/CLSID(每台计算机多个 CLSID 实例)。 由于分区功能允许计算机上存在多个 CLSID 实例,因此包含需要为每个计算机提供唯一 CLSID 的设计元素的应用程序可能会受到不利影响。

全局资源

某些应用程序使用全局资源,例如共享内存、数据文件和注册表项。 如果此类应用程序的多个实例同时执行,则可能会导致问题。

例如,如果组件使用共享内存与其他组件交互,则需要修改该组件,以便组件的每个实例分配自己的共享内存。

类型库

类型库提供有关组件的接口和方法的信息。 此信息用于多个目的,包括:

  • 在进行函数调用时封送组件之间的数据
  • 帮助 COM+ 排队组件和 COM+ 事件服务
  • 在 Microsoft Visual Basic 编辑器中提供正确的信息

对类型库的引用安装在计算机的注册表中。 开发将从分区内调用的应用程序时,请务必在注册表中安装最新版本的类型库。 这可确保正在使用的 Visual Basic 编辑器将获取有关该组件可用的方法的准确信息。

COM+ 排队的组件和分区

分区实现

在分区中注册和激活组件

什么是 COM+ 分区?