安全地将补丁应用于COM +应用程序

时间:2012-08-09 17:21:23

标签: c# .net-4.0 patch windows-server-2008-r2 com+

我们有一些COM+ Application由几个DLL组成,每个COM+ Application Catalog包含多个服务组件(用C#编写),运行在Windows Server 2003 / 2008R2操作系统上。

在某些情况下(我们尽可能避免),我们有义务应用补丁来纠正错误。为了实现这一点,我们目前所做的是(当然假设我们拥有目标服务器上所需的所有东西):

  1. 禁用 COM + App。
  2. 关闭 COM + App。
  3. 取消注册要替换的DLL。
  4. 替换 DLL。
  5. 再次注册所涉及的DLL。
  6. 启用 COM + App。
  7. 上面提到的步骤没有问题,我们通过命令行构建了一个用于以编程方式管理COM+ Application的小应用程序,这样我们就可以更新一些DLL并使服务组件生活在大约。 2秒...对我们来说并不算太多,我们可以负担这个(离线)时间,但我希望通过编写修补工具来完善整个过程并自动完成。

    我想弄清楚的是:

    • 我怎么知道我Serviced Components的所有服务组件都已完成工作(所有请求/调用都已完成),以便我可以安全地进入第2点?
    • 更多细节,是否有任何图书馆可用于获取某个COM+ Application的{​​{1}}的状态?

    注意 :如果您习惯使用 dcomcnfg ,我需要访问的数据与您看到的数据相同您展开COM+ Application下的Console Root\Computers\My Computer\<MyComPlusApp>文件夹,然后展开文件夹Components并转到菜单View并选择Status菜单项。 Windows当然能够知道每个COM+ Serviced Component在屏幕上显示它的状态,因此这正是我需要访问的数据。

1 个答案:

答案 0 :(得分:3)

  

我怎么知道我的COM +的所有服务组件   应用程序已完成工作(所有请求/调用已完成   完成)以便我可以安全地进入第2点?

您可以使用COM+ Instrumentation InterfacesCOM+ Tracking来接收有关您的组件的信息。

  

更多细节,是否有任何我可以使用的库来获取   某个COM +应用程序的服务组件的状态?

IGetAppTrackerData interface可让您获得所需的信息。

一些注意事项:不要忘记在关闭应用程序时需要小心,因为组件无法处于通话状态,但在关机之前会有其他来电服务。此外,根据我使用COM + API的经验可能会变得混乱,有时缺乏文档(特别是在示例方面)。

看起来保存2秒可能有点工作。 :)