加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 什么决定了进程外COM服务器注意到客户端已经死亡的时

发布时间:2020-12-14 01:58:22 所属栏目:Windows 来源:网络整理
导读:在一个简单的 Windows设置中,我们有一个COM单例,作为进程外服务器运行. 客户端通过调用cocreate进行连接,每个客户端都接收到服务器的同一实例的接口. 如果客户端正常关闭,则会释放其引用. 服务器有一些逻辑,可以在最后一次发布后的短时间内保持活动状态,以允
在一个简单的 Windows设置中,我们有一个COM单例,作为进程外服务器运行.

客户端通过调用cocreate进行连接,每个客户端都接收到服务器的同一实例的接口.

如果客户端正常关闭,则会释放其引用.

服务器有一些逻辑,可以在最后一次发布后的短时间内保持活动状态,以允许新的连接.

我对一个特殊情况感兴趣 – 服务器只运行一个崩溃的客户端(认为这是任何随机的未知崩溃),客户端退出而没有发布它的引用.

我观察到,在一段未定义的时间后说8分钟后,服务器会在服务器已将接口返回到客户端的任何对象的存根上接收释放调用.这似乎是一个自动清理,我假设是由LRPC层启动的.

这是在任何地方记录的,是否可以配置超时?

注意:整个过程中使用的多线程公寓模型.

解决方法

DCOM垃圾收集下的这个 https://web.archive.org/web/20171228092925/http://www.microsoft.com/msj/0398/dcom.aspx似乎表明DCOM使用120秒的超时需要错过三次,因此大约6分钟客户端将被视为断开连接.不幸的是,它也表明它不是用户可配置的,我找不到任何相反的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读