RPC异常的含义/原因'未导出接口。'

时间:2020-03-05 18:48:16  来源:igfitidea点击:

我们有一个使用MS RPC构建的相当标准的客户端/服务器应用程序。客户端和服务器均使用C ++实现。客户端建立与服务器的会话,然后在最终关闭会话之前的一段时间内对其进行多次调用。

但是,周期性地,特别是在高负载条件下,我们看到一个RPC异常出现,代码为1754:RPC_S_NOTHING_TO_EXPORT

看来这发生在会话的中间。用户登录一段时间后,成功拨打电话,然后其中一个电话莫名其妙地返回此错误。据我们所知,服务器没有收到任何错误消息的指示,并且绝对看不到客户端发出的呼叫。

错误代码似乎也具有永久性含义。让客户端重试连接也不起作用。但是,如果用户在同一客户端和服务器之间同时有多个活动的用户会话,则其他连接不受影响。

本质上,我有两个问题:

  • 有人知道RPC_S_NOTHING_TO_EXPORT是什么意思吗? MSDN文档只是说:""没有接口被导出。" ... ...嗯?到现在为止,该会话对于同一呼叫的许多实例都运行良好。
  • 有人对如何确定真正的问题有任何想法吗?注意:如果可能的话,我们宁愿避免捕获网络流量,因为该问题非常零星,以至于我们在发生故障之前可能会经历数GB的流量。

解决方案

回答

捕获网络流量将是解决此问题的最佳方法之一。如果不能这样做,是否可以转储客户端进程并使用WinDBG或者Visual Studio进行调试?也许将正常运行与错误状态下的转储进行比较?