2012-08-09 50 views
3

我们已经有些COM+ Application含有多种服务组件每个(C#编写),运行在Windows Server 2003中/ 2008R2操作系统的几个DLL小号组成。将修补程序COM +应用程序安全

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

  1. 禁用的COM +应用程序。
  2. 关机 COM +应用程序。
  3. 取消注册涉及的DLL被替换。
  4. 替换的DLL。
  5. 寄存器再次涉及的DLL。
  6. 启用 COM +应用程序。

没有与提到的步骤没有问题上面,我们建立了一个小型应用程序,用于管理COM+ Application Catalog编程,通过命令行,所以这样我们就可以更新一些DLL文件,并把服务组件到大约居住。 2秒...对我们来说并不是太多,我们可以承受这个(离线)时间,但是我想通过编写一个修补工具来完善和自动化这个过程。

我试图搞清楚的是:

  • 我怎么能知道我所有的COM+ Application的服务组件已经完成了他们的工作(所有请求/呼叫已完成),这样我可以继续安全到第2点?
  • 更详细,有没有我可以用得到的一定COM+ ApplicationServiced Components状态的任何图书馆吗?

注意:如果您在使用DCOMCNFG工作,我需要访问的数据是一样的,你看你扩大Console Root\Computers\My Computer\<MyComPlusApp>COM+ Application文件夹,然后您展开文件夹Components并转到菜单View并选择Status菜单项。当然视窗能够知道每个COM+ Serviced Component在画面的显示它的状态,所以这正是我需要访问的数据。

回答

3

我怎么能知道我所有的COM +应用 的服务组件已经完成了他们的工作(所有请求/电话一直 完成),这样我可以继续安全地2点?

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

更详细,有没有我可以用得到的服务组件的 状态的某些COM +应用程序的任何库?

IGetAppTrackerData interface应该让你得到你需要的信息。

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

它似乎可以节省2秒的工作。 :)

+0

非常感谢这个有价值的信息。我会试一试,让你知道。 – 2012-08-11 08:37:49