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

发布于 2024-11-04 02:50:44 字数 154 浏览 1 评论 0原文

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

b = new myBw.Baan4Class();

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

I am calling third party com object from an ASP.NET that invoke an executable as follows

b = new myBw.Baan4Class();

At any given time there could be muliple instances invoked by ASP processes.
How can I get the PID of b so that I can 'Kill' it without disturbing(killing) others..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

dawn曙光 2024-11-11 02:50:44

如果不知道有关您正在使用的 COM 对象的更多详细信息,我认为没有任何好方法将它启动的 exe 与您正在创建的对象关联起来。

话虽如此,您可以将创建这些对象的责任委托给一个集中位置(可能是在 SingleInstance 模式下运行的 WCF 服务),该位置可以通过实例化新对象并等待 exe 启动来将创建的对象与 exe 关联起来。当 exe 启动后,它可以将它创建的对象与启动的 exe 关联起来。您可以使用 WMI 检测新的 exe 何时启动。

在 ASP.NET 中几乎不可能做到这一点,因为多个用户可能同时实例化这些对象。如果您尝试在这里执行此操作,您将遇到竞争条件。

这是一个类似的问题: 如何确定 VB6 应用程序与使用 CreateObject() 实例化的 exe 之间的关联

Without knowing more details about the COM object you are using I don't think there's any great way to associate the exe it launches and the object you are creating.

With that said you could delegate the responsibility of creating these objects to a centralized location (WCF service running in SingleInstance mode maybe) that can associate the object created to the exe by instantiating a new object and waiting for the exe to be launched. When the exe has been launched it can then associate the object it created with the exe launched. You could use WMI to detect when a new exe has been launched.

It's going to be pretty much impossible to do this in asp.net since multiple users could be instantiating these objects at the same time. You would be running into race conditions if you tried to do this here.

Here is a similar question: How to determine the association between a VB6 app and an exe instanced with CreateObject()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文