COM+ 1.5 中的新增功能

COM+ 版本 1.5 新增了旨在提高面向开发人员和系统管理员的 COM+ 应用程序的整体可伸缩性、可用性和可管理性的新功能。

从 Windows XP 和 Windows Server 2003 开始可以使用 COM+ 1.5。 新的 COM+ 1.5 功能在 Windows 2000 中不可用。

默认情况下启用的应用程序级别访问检查

作为系统增强安全性的一部分,创建 COM+ 应用程序时,默认情况下会启用访问检查。 在以前的几个版本中,在应用程序级别默认禁用访问检查,在组件级别默认启用访问检查。 从 Windows Server 2003 开始,默认在应用程序级别启用访问检查,并在组件级别默认禁用。 有关如何更改默认设置的详细信息和过程,请参阅创建新 COM+ 应用程序为应用程序启用访问检查在组件级别启用访问检查

应用程序池

使用 Applications 集合中 COMAdminCatalogObject 对象的新 ConcurrentApps 属性时,COM+ 应用程序池为单线程进程添加了可伸缩性,并与新的 COM+ 应用程序回收服务集成。 有关详细信息,请参阅 COM+ 应用程序池

应用程序回收

应用程序回收大幅提高了应用程序的整体稳定性。 由于内存泄漏、依赖于第三方代码和不可伸缩的资源使用情况等因素,大多数应用程序的性能可能都会随着时间推移而下降,因此 COM+ 应用程序回收提供了一个简单的解决方案,可用于正常关闭与应用程序关联的进程并将其重新启动。 有关详细信息,请参阅 COM+ 应用程序回收。 有关配置进程回收的分步过程,另请参阅《组件服务管理帮助》中的“配置进程回收”。

COM+ 分区

在此版本中,COM+ 引入了对 COM+ 分区的支持,该功能允许在同一台计算机上安装和配置多个版本的 COM+ 应用程序。 此功能可以节省使用多个服务器管理应用程序的不同版本的成本和耗时。 在单个计算机上,每个分区实际上都充当虚拟服务器。 将应用程序安装到每个分区后,将创建将用户映射到逻辑服务器的分区集。 有关如何设置和管理 COM+ 分区的详细信息,请参阅 COM+ 分区。 有关分步过程,另请参阅《组件服务管理帮助》中的“管理应用程序分区”。

不带组件的 COM+ 服务

借助 COM+ 1.5,可以使用 COM+ 提供的服务,而无需生成组件来包含调用这些服务的方法。 这极大地有利于通常不使用组件但想要使用 COM+ 服务(如事务或 COM+ 跟踪器)的开发人员。 使用不带组件的 COM+ 服务,开发人员可以避免创建仅用于访问所需 COM+ 服务的组件的开销。 有关详细信息,请参阅不带组件的 COM+ 服务

COM+ SOAP 服务

在 COM+ 1.5 中,现在可以将 COM+ 应用程序公开为 XML Web 服务。 还可以以透明方式使用 XML Web 服务(无论是否使用 COM+ 部署)作为 COM 组件。 这意味着,可以轻松地从现有 COM+ 应用程序创建新的 XML Web 服务,并轻松地将 XML Web 服务合并到新的 COM+ 应用程序中。 有关详细信息,请参阅 COM+ SOAP 服务

可配置隔离级别

COM+ 开发人员可以使用新的 TxIsolationLevel 属性或组件服务管理工具,根据需要配置应用程序的隔离级别,以帮助提高并发性、性能和可伸缩性。 这种灵活性使那些具有适当专业知识的人员能够从应用程序获得最后一点的吞吐量。 有关详细信息,请参阅配置事务隔离级别

创建私有组件

在某些场景中,应用程序中具有多个帮助程序组件,并且只能从该应用程序中的其他组件调用这些组件,那么利用此版本的 COM+,可使用新属性 IsPrivateComponent 将这些组件标记为私有。 (在上一版本的 COM+ 中,所有组件都必须公开才能访问 COM+ 服务,这意味着可以从其他应用程序激活这些组件。)私有组件只能由同一应用程序中的其他组件查看和激活,从而更好地控制要公开的功能。 只需记录和维护公共组件,同时使用无法从应用程序外部访问的私有组件,但仍可以利用所有 COM+ 服务。

DTC 安全设置

为 Microsoft 分布式事务处理协调器 (DTC) 添加了多个新安全设置,从而可以自定义用于管理分布式事务的安全级别。 请参阅“DTC 安全注意事项”,了解这些设置以及如何实现这些设置。

为了方便相互身份验证,DTC 仅限于在 NetworkService 帐户下运行。 有关详细信息,请参阅“管理帐户和特权”。

若要使用 XA 数据库进行恢复,建议向 NetworkService 帐户提供执行此恢复所需的权限和角色。 执行此操作的确切方法特定于每个数据库。 有关详细信息,请参阅“禁用本机分布式事务”和“禁用 TIP 和 XA 事务”。

为了帮助在使用 XA 事务时提供更安全的系统,Windows Server 2003 平台包含用于指定 XA DLL 文件的新注册表项。 升级到 Windows Server 2003 时,可以像以前那样,在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL 下创建注册表项,以便处理 XA 事务,其中值名称是 DLL 的名称(格式为 dllname.dll),并且值是 DLL 文件的完整路径。 需要为每个正在使用的 XA DLL 文件创建一个条目。 如果运行 DTC 的计算机是群集的一部分,则需要为群集中的每个节点创建注册表项。 有关详细信息,请参阅“管理 XA 事务”。

低内存激活门

在此版本中,COM+ 会在创建 COM+ 服务器或对象之前自动检查内存。 如果应用程序可用的虚拟内存百分比低于固定阈值,则创建对象之前激活会失败。 通过使通常运行的这些激活失败,COM+ 低内存激活门服务大幅提高了系统可靠性。

移动和复制 COM 组件

在此版本中,COM+ 允许移动和复制组件。 这意味着,可以多次配置组件的单个物理实现。 可以在二进制级别(而不是源代码级别)获得组件重用,这会减少代码、降低开发成本以及缩短上市时间。 有关详细信息,请参阅移动组件复制组件

网络访问

默认情况下,Windows Server 2003 上禁用 COM+ 网络访问,这意味着默认只能在本地使用 COM+。 使用以下过程启用网络 COM+ 访问。

启用网络 COM+ 访问

  1. 在“开始”菜单上,指向“控制面板”,然后选择“添加或删除程序”。

  2. 单击“添加/删除 Windows 组件”。

  3. 选择 “应用程序服务器” ,然后单击 “详细信息”

  4. 选中“启用网络 COM+ 访问”旁边的框,然后单击“确定”。

  5. 单击“下一步”完成“Windows 组件”向导。

  6. 单击 “完成” 关闭向导。

默认情况下,Windows Server 2003 上禁用 DTC 网络事务访问。 在这些平台上,DTC 默认只能执行本地事务。 使用以下过程启用网络 DTC 访问。

注意

还可以使用组件服务管理工具或通过 COM+ 管理库以编程方式启用网络 DTC 访问。 有关过程信息,请参阅《组件服务管理帮助》中的“配置 DTC 安全性”。

启用网络 DTC 访问

  1. 在“开始”菜单上,指向“控制面板”,然后选择“添加或删除程序”。

  2. 单击“添加/删除 Windows 组件”。

  3. 选择 “应用程序服务器” ,然后单击 “详细信息”

  4. 选中“启用网络 DTC 访问”旁边的框,然后单击“确定”。

  5. 单击“下一步”完成“Windows 组件”向导。

  6. 单击 “完成” 关闭向导。

暂停和禁用应用程序

COM+ 应用程序现在更易于管理。 管理员可以暂停和恢复 COM+ 服务器应用程序,或者禁用和启用 COM+ 库或服务器应用程序,甚至单个配置的组件。 暂停和禁用功能都会阻止将来的激活,而不会影响现有组件实例。 有关详细信息,请参阅《组件服务管理帮助》中的“管理 COM+ 应用程序”。

进程转储

在生产环境中对应用程序进行故障排除并不轻松。 如何在不影响正在运行的进程的情况下收集有关问题的信息? COM+ 现在通过其新的进程转储功能提供了一个解决方案。 此功能允许系统管理员在不终止进程的情况下转储进程的整个状态。 有关详细信息,请参阅《组件服务管理帮助》中的“管理用于调试 COM+ 应用程序的进程转储工具”。

进程初始化

许多服务器应用程序在启动和关闭时需要执行特定的初始化和清理。 在 Windows Server 2003 上运行时,可以创建实现 IProcessInitializer 接口的类。 进程启动时,会调用 IProcessInitializer::Startup,而在关闭时,会调用 IProcessInitializer::Shutdown。 这样,组件就有机会执行所需的任务,例如初始化连接、文件和缓存。

将 COM+ 应用程序作为 NT 服务运行

COM+ 开发人员现在可以使用组件服务管理工具来作为 NT 服务配置和实现 COM+ 服务器应用程序。 这意味着,如果应用程序始终需要运行,则可以自动启动或重启服务器;如果 COM+ 应用程序需要执行特权操作,则可以作为本地系统帐户运行;并且现在可以自动启动应用程序的相关服务。 有关详细信息,请参阅 COM+ 应用程序作为服务应用程序运行

并行程序集

并行 (SxS) 程序集允许应用程序指定要使用的系统 DLL 或经典 COM 组件的版本,例如 MDAC、MFS、MSVCRT 或 MSXML。 例如,如果 ASP 应用程序依赖于 MSXML 版本 2.0,则可以确保此应用程序仍使用 MSXML 版本 2.0,即使将 Service Pack 应用于服务器后也是如此。 也就是说,即使计算机上安装了新版本的 MSXML,版本 2.0 也会保留并供应用程序使用。

若要配置 SxS 程序集,需要知道 DLL 的路径,并且需要使用 DLL 的每个虚拟目录中都存在 COM+ 清单文件。 COM+ 清单是一个 XML 文件,其中包含有关 DLL 安装位置的信息。 清单用于为应用程序创建激活上下文。 激活上下文允许应用程序加载特定的 DLL 版本、COM 对象实例或自定义窗口版本。 可以使用组件服务管理工具或 ApplicationDirectory 属性输入包含有效 SxS 程序集清单文件的应用程序根目录的完整路径。 有关详细信息,请参阅隔离应用程序和并行程序集

Windows 错误报告

COM+ 1.5 包括对从 Windows XP 开始提供的 Windows 错误报告 (WER) 组件的支持。 WER 使用户能够通知 Microsoft 应用程序故障、内核错误和无响应应用程序。 这些通知使 Microsoft 客户支持团队能够更有效地解决技术问题。 此外,Windows 错误报告组件使 COM+ 开发人员能够接收可用于改进其应用程序的信息。 有关详细信息,请参阅 Windows 错误报告