如何检索由net程序集创建的com应用程序的PID(进程ID)

时间:2011-04-30 10:29:28

标签: asp.net com

我从调用可执行文件的ASP.NET调用第三方com对象,如下所示

b = new myBw.Baan4Class();

在任何给定时间,ASP进程都可能调用多个实例。 如何获得b的PID,以便我可以“杀死”。它没有打扰(杀害)其他人..

1 个答案:

答案 0 :(得分:1)

在不知道您正在使用的COM对象的更多细节的情况下,我认为没有任何好方法可以将它启动的exe与您正在创建的对象相关联。

据说,你可以将创建这些对象的责任委托给一个集中的位置(也许是以SingleInstance模式运行的WCF服务),它可以通过实例化一个新对象并等待exe启动来将创建的对象与exe关联起来。 。当exe已经启动时,它可以将它创建的对象与启动的exe相关联。您可以使用WMI来检测新exe的启动时间。

在asp.net中执行此操作几乎是不可能的,因为多个用户可能同时实例化这些对象。如果你在这里尝试这样做,你会遇到竞争条件。

以下是一个类似的问题:How to determine the association between a VB6 app and an exe instanced with CreateObject()