ATL COM服务器生存期

ATL COM服务器生存期,com,atl,Com,Atl,我在ATL的帮助下编写了一个进程外COM服务器。在正常情况下,服务器的生命周期可以方便地为您处理,但是如果客户机进程在释放其接口之前死亡,那么服务器似乎会永远存在 是否有一种方法(或我不知道的超时)允许服务器在没有连接客户端时进入其关闭过程。或者我想另一种说法是,ATL/COM如何处理崩溃客户端的引用计数?在几分钟内取消对COM服务器中存根的引用会超时,所以这不会永远发生。然而,您可能遇到的另一个问题是,作为操作的一部分,服务器中的COM对象具有交叉引用,这些交叉引用不会随着连接的客户端的突然死

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


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

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

正确。看起来大约6分钟……感觉就像永远:)