我的应用程序使用 Microsoft RPC 进行进程间通信。当两个进程在同一台机器上运行并且一个进程尝试调用声明为(IDL 表示法)的方法时:
error_status_t rpcMethod( [in] pipe byte parameter );
此调用因 RPC_S_CANNOT_SUPPORT(“不支持请求的操作”)而失败,并且永远不会到达服务器端,并且永远不会调用所提供管道的 push()/pull() 原语。这仅在使用ncalrpc协议时才会在 Vista 上重现,否则不会。
我还在事件查看器日志中发现了以下内容:
应用程序(“此处的我的程序 exe 文件名”\service)(PID:344)正在使用此版本的 Windows 中不存在的 Windows 功能。如需获取应用程序的更新版本,请联系应用程序供应商。需要传达给应用程序供应商的技术信息是:“已在具有唯一标识符(此处为实际 UUID)的协议序列 ncalrpc 接口上调用了使用同步管道的 RPC 方法。此协议序列上同步管道的使用和支持此版本的 Windows 已弃用。有关弃用过程的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=36415。用户操作联系应用程序供应商以获取应用程序的更新版本
消息文本中的链接重定向到可能不相关的页面。
除了更改协议序列或不使用管道之外,是否有解决此问题的方法?