4

我有一个在 ATL 的帮助下编写的进程外 COM 服务器。在正常情况下,可以方便地为您处理该服务器的生命周期,但是如果客户端进程在释放其接口之前死亡,则服务器似乎会永远徘徊。

有没有办法(或我不知道的超时)允许服务器在没有客户端连接时进入其关闭过程。或者我想另一种说法是 ATL/COM 如何处理崩溃客户端的引用计数?

4

1 回答 1

3

在您的 COM 服务器中取消引用存根会在几分钟内超时,因此它不会永远持续下去。但是,您可能遇到的另一个问题是,作为操作的一部分,您的服务器中的 COM 对象具有交叉引用,这些交叉引用未随着连接客户端的突然死亡而正确释放。在这种情况下,您的 COM 对象将保持对服务器进程的锁定,并防止它发生您希望发生的自动终止。

于 2013-02-20T08:44:37.110 回答