[英]How to fix "CCertRequest::Submit: The RPC server is unavailable. 0x800706ba" error?
[英]Catch RPC lock before error 0x800706BA
我们有一些工具和服务可以与同一个COM服务器通信。 一段时间后,我们得到了错误
COMException(0x800706BA)RPC服务器不可用
似乎一个应用程序阻止了RPC,而第二个应用程序尝试进行通信并失败。 它不是同一个应用程序,有时它需要几个小时才能发生。 但更糟糕的是:在RPC错误首次出现之后,所属应用程序每次向该COM服务器调用COM函数时,都会收到相同的RPC错误-它已死。 重新启动应用程序(或服务)后,所有程序运行良好,直到下一次...是否有办法确定RPC是否可用,然后等待其释放? 如果不是,我必须创建一个新的COM对象,并希望我不必重新启动应用程序。
谢谢你的帮助。
(0x800706BA)RPC服务器不可用意味着客户端无法联系COM服务器端的RPC服务器。 请注意,有一个单独的代码用于RPC服务器太忙 。 发生这种情况的原因是以下任何一种情况:
请注意,后者几乎符合您的描述-实例化了一个COM对象,获得了指向它的指针,并且它工作了一段时间,然后发生了某些事情,并且通过该指针访问该对象的任何尝试都会导致RPC服务器不可用,因为没有再运行的COM服务器进程以及其中的RPC服务器也消失了。 在这种情况下,您唯一可以做的就是重新实例化COM对象。 您的应用程序中将需要其他逻辑来解决此类情况。
我遇到了一个COM +对象的错误,并将其解决。 如果在应用程序中创建并使用了COM +对象,并且随着时间的流逝,如果COM +应用程序被回收,则重复使用同一COM +对象会出现此错误。 您可能必须重新实例化COM +对象才能使其再次工作。 您可以尝试以下步骤来重现该错误:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.