RPC 异常“未导出接口”的含义/原因。
Posted
技术标签:
【中文标题】RPC 异常“未导出接口”的含义/原因。【英文标题】:Meaning/cause of RPC Exception 'No interfaces have been exported.' 【发布时间】:2008-09-05 14:55:47 【问题描述】:我们有一个使用 MS RPC 构建的相当标准的客户端/服务器应用程序。客户端和服务器都是用 C++ 实现的。客户端与服务器建立会话,然后在一段时间内反复调用它,最后关闭会话。
然而,定期,尤其是在高负载条件下,我们会看到 RPC 异常出现,代码为 1754:RPC_S_NOTHING_TO_EXPORT
。
这似乎发生在会话中间。用户登录一段时间,成功调用,然后其中一个调用莫名其妙地返回此错误。据我们所知,服务器没有收到任何错误的指示——而且它肯定看不到客户端的调用。
错误代码似乎也具有永久性影响。让客户端重试连接也不起作用。但是,如果用户在同一客户端和服务器之间同时有多个用户会话处于活动状态,则其他连接不受影响。
本质上,我有两个问题:
有人知道RPC_S_NOTHING_TO_EXPORT
是什么意思吗? MSDN 文档简单地说:"No interfaces have been exported."
...嗯?到目前为止,该会话对于相同调用的多个实例都运行良好...
有没有人知道如何识别真正的问题? 注意:如果可能的话,我们宁愿避免捕获网络流量,因为问题是零星的,我们可能会在遇到事件之前经历数 GB 的流量。
李>【问题讨论】:
【参考方案1】:捕获网络流量将是解决此问题的最佳方法之一。如果你不能这样做,你可以转储客户端进程并使用 WinDBG 或 Visual Studio 进行调试吗?也许比较一下正常运行和错误状态下的转储?
【讨论】:
以上是关于RPC 异常“未导出接口”的含义/原因。的主要内容,如果未能解决你的问题,请参考以下文章