【问题标题】:How to retrieve PID(Process ID) of a com application created by net assembly如何检索由网络程序集创建的 com 应用程序的 PID(进程 ID)
【发布时间】:2011-04-30 10:29:28
【问题描述】:

我正在从 ASP.NET 调用第三方 com 对象,该对象调用如下可执行文件

b = new myBw.Baan4Class();

在任何给定时间,都可能有多个由 ASP 进程调用的实例。 我怎样才能得到 b 的 PID,这样我就可以在不打扰(杀死)其他人的情况下“杀死”它..

【问题讨论】:

    标签: asp.net com


    【解决方案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()

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 2011-02-01
      • 2015-01-20
      • 2016-11-19
      • 2012-02-11
      相关资源
      最近更新 更多