关于Windows:含义/ RPC异常的原因’未导出接口。

关于Windows:含义/ RPC异常的原因’未导出接口。

Meaning/cause of RPC Exception 'No interfaces have been exported.'

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

但是,周期性地,尤其是在重负载条件下,我们看到代码1754:RPC_S_NOTHING_TO_EXPORT出现了RPC异常。

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

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

本质上,我有两个问题:

  • 有人知道RPC_S_NOTHING_TO_EXPORT是什么意思吗? MSDN文档只是说:"No interfaces have been exported." ...嗯?到现在为止,该会话对于同一呼叫的许多实例都运行良好...

  • 有人对如何确定真正的问题有任何想法吗?注意:如果可能的话,我们宁愿避免捕获网络流量,因为该问题非常零星,以至于我们在发生事故之前可能要经过数GB的流量。


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


    推荐阅读