本文介绍了“不支持操作”当调用Vista上的RPC调用时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我的应用程序使用Microsoft RPC进行进程间通信。当两个进程在同一台机器上运行,并且一个进程尝试调用声明为(IDL表示法)的方法时: error_status_t rpcMethod ([in] pipe byte参数); 此调用失败,RPC_S_CANNOT_SUPPORT(不支持所请求的操作),并且永远不会到达服务器端并且从不调用所提供的管道的push()/ pull()基元。这只有在使用 ncalrpc 协议时才能在Vista上再现。 我在事件查看器日志中也找到了以下内容: 应用程序(我的程序exe文件名在这里\service)(PID:344)正在使用Windows版本中不存在的Windows功能。要获取应用程序的更新版本,请与应用程序供应商联系。需要传递给应用程序供应商的技术信息是:使用同步管道的RPC方法已经在具有唯一标识符(这里是实际的UUID)的协议序列ncalrpc接口上被调用该协议序列上同步管道的使用和支持对于此版本的Windows已弃用。有关弃用过程的信息,请参见 http:/ /go.microsoft.com/fwlink/?LinkId=36415 。用户操作与应用程序供应商联系以获取应用程序的更新版本 消息文本中的链接重定向到可能不相关的页面。 除了更改协议序列或不使用管道之外,是否有此问题的解决方法?解决方案 RPC_NOTIFICATIONS枚举值,用于指定服务器从RPC请求的通知类型。 / p> Windows Vista :目前仅支持RpcNotificationClientDisconnect和RpcNotificationCallCancel。如果为此参数指定了任何其他值,则会返回RPC_S_CANNOT_SUPPORT错误代码。 查看MSDN My application uses Microsoft RPC for interprocess communications. When two processes are run on the same machine and one process tries to call a method declared as (IDL notation):error_status_t rpcMethod( [in] pipe byte parameter );this call fails with RPC_S_CANNOT_SUPPORT ("The requested operation is not supported") and never reaches the server side and the push()/pull() primitives of the supplied pipe are never called. This is only reproduced on Vista when using ncalrpc protocol and not otherwise.I also found the following in the Event Viewer logs:Application ("my program exe file name here" \service) (PID: 344) is using Windows functionality that is not present in this release of Windows. For obtaining an updated version of the application, please, contact the application vendor. The technical information that needs to be conveyed to the application vendor is this: "An RPC method using synchronous pipes has been called on on protocol sequence ncalrpc interface with unique identifier (actual UUID here). Usage and support of synchronous pipes on this protocol sequence has been deprecated for this release of Windows. For information on the deprecation process, please, see http://go.microsoft.com/fwlink/?LinkId=36415." User Action Contact the application vendor for updated version of the applicationThe link in the message text redirects to a page that is not likely relevant.Is there a workaround for this problem except for changing the protocol sequence or not using pipes? 解决方案 You are most likely using a method that is unsupported in Vista.RPC_NOTIFICATIONS enumeration value that specifies the type of notification requested from RPC by the server.Windows Vista: Currently, only RpcNotificationClientDisconnect and RpcNotificationCallCancel are supported. If any other value is specified for this parameter, the RPC_S_CANNOT_SUPPORT error code is returned.See MSDN 这篇关于“不支持操作”当调用Vista上的RPC调用时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-21 17:32