在现代软件开发中,版本控制是一个不可或缺的部分。它允许开发者跟踪代码的变更历史,并且能够回滚到任何先前的状态。然而,对于COM+应用程序来说,配置的版本控制往往被忽视。COM+应用程序的配置通常通过COM+管理器进行管理,但这些配置信息并不会自动纳入版本控制系统。幸运的是,COM+目录可以通过一系列完全可脚本化的COM对象进行访问。这些脚本利用这一点,提供了一些本应成为标准的功能。
有两个主要的脚本工具:
这些脚本使得将COM+应用程序的配置保存为XML文档成为可能,将其置于版本控制之下,并在以后从该文档中重建COM+应用程序。
COM+应用程序的配置可能相当复杂,尤其是当使用更多的COM+服务时。当应用程序由多个配置组件组成,使用多个角色,并且具有方法级别的安全性时,几乎不可能轻松地记录应用程序的配置。在一个环境中,如果所有源代码都常规地存储在配置管理系统中,并且可以从源代码树自动重建任何版本的应用程序,那么手动从潦草的笔记和记忆中重新配置COM+应用程序显然是不可行的。
COM+目录由COM+ Admin COM对象进行操作。这些对象允许以编程方式执行COM+资源管理器可以做的任何事情。这些接口非常通用,处理COM+目录集合,其中包含COM+目录对象,这些对象又具有名称/值属性。这些接口可以用来访问COM+应用程序的整个配置,将其存储在COM+目录之外,然后从中重建应用程序。
这些页面上提供的脚本使得将COM+应用程序配置保存为XML文档成为可能,将其置于版本控制之下,并在以后从该文档中重建COM+应用程序。可以将多个应用程序保存到一个单一的XML文档中,保存IIS的一部分的三个COM+应用程序的结果可以在这里看到。
一些配置设置可能特定于希望运行应用程序的特定环境。例如,如果在开发服务器上运行应用程序,而不是生产服务器,对象的ConstructorString属性可能会有所不同。脚本允许保存完整的应用程序以及应用程序补丁。补丁只是创建整个应用程序所需的XML的一个子集,它可以包含尽可能多或尽可能少的设置,并且可以在主要应用程序重建后应用,以便可以根据特定环境定制应用程序。目前,必须使用像XML记事本这样的工具手动创建补丁文件。应用程序补丁元素的不同之处仅在于元素名称是ApplicationPatch而不是Application,并且它有一个Patch属性,用于允许一个文件包含同一应用程序的不同补丁。一个示例可以在这里找到。
运行每个脚本时不带任何参数,将显示一个帮助屏幕,列出可用的选项。
以下是使用COM+DumpApp.vbs脚本转储COM+应用程序配置的示例代码:
' 保存COM+应用程序配置到XML文件
Dim comAdminCatalog
Set comAdminCatalog = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim comApp
Set comApp = comAdminCatalog.Get("Win32_COMApplication.Name='YourAppName'")
comApp.Export("YourAppName.xml")