1

我们有一个使用 MS RPC 构建的相当标准的客户端/服务器应用程序。客户端和服务器都是用 C++ 实现的。客户端与服务器建立会话,然后在一段时间内重复调用它,最后关闭会话。

然而,周期性地,尤其是在高负载条件下,我们会看到 RPC 异常出现代码 1754: RPC_S_NOTHING_TO_EXPORT

这似乎发生在会话中间。用户登录一段时间,成功调用,然后其中一个调用莫名其妙地返回此错误。据我们所知,服务器没有收到任何出错的迹象——而且它肯定看不到客户端的调用。

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

本质上,我有两个问题:

  1. 有谁知道是什么RPC_S_NOTHING_TO_EXPORT意思?MSDN 文档简单地说:"No interfaces have been exported."...嗯?到目前为止,对于同一呼叫的许多实例,该会话都运行良好...

  2. 有没有人对如何识别真正的问题有任何想法?注意:捕获网络流量是我们宁愿避免的事情,如果可能的话,因为问题是零星的,我们可能会在遇到事件之前经历数 GB 的流量。

4

1 回答 1

1

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

于 2008-09-09T01:12:01.170 回答