【发布时间】:2010-08-23 18:57:35
【问题描述】:
我有一个应用程序将请求发送到进程外 COM 服务器,该服务器处理请求并将它们发送回请求的应用程序。
客户端应用程序实际上控制着这个 Out-of-Proc COM 服务器的启动和停止,并且可以说决定了它的生命周期。
由于此应用程序在任何给定时间都有数百个请求,因此它通常至少有 4 个相同的 COM 服务器来处理这些请求。
问题在于,有时该 COM 服务器在处理请求时挂起,该请求被请求应用程序捕获,该应用程序会杀死 out of proc COM 服务器。然而,这并不总是发生。
有时会发生的情况是客户端应用程序请求 COM 服务器终止,这导致客户端释放对 COM 服务器的所有引用,但 COM 服务器最终只使用 25% 的 CPU 并且永远不会终止。它似乎只是挂起并不断使用 CPU。
如果 COM 服务器进程未能终止,客户端具有尝试强制终止 COM 服务器进程的机制,但是即使在 COM 服务器进入 CPU 使用率并只是挂起的情况下似乎也不起作用。
有没有人经历过类似的事情或对如何解决这种情况有一些建议?
【问题讨论】: