我的程序使用Microsoft RPC进行进程间通信。用于接收RPC调用程序准备运行如下序列:启动RPC服务器时,“端点重复”
RpcServerUseProtseqEp(),然后
RpcServerRegisterIf(),然后
RpcServerListen()
该程序按照上述顺序启动它的RPC服务器,工作一段时间,然后终止并可能稍后由另一个程序重新启动。每次程序运行时,RpcServerUseProtseqEp()的参数值集合都是相同的。
重新启动后第一次运行序列时,它总是成功,但在后续运行中,RpcServerUseProtseqEp()返回RPC_S_DUPLICATE_ENDPOINT(“端点是重复的”。)目前我只是忽略此特定错误代码并将其视为成功,那么所有其他基元通常工作正常。
什么是使用RpcServerUseProtseqEp()的正确方法?我应该做任何清理来撤销已注册的端点或只是忽略RPC_S_DUPLICATE_ENDPOINT错误代码?
尝试调用RpcServerInqBindings(),然后调用RpcEpUnregister()。前者成功,后者返回“服务器端点未能执行操作”。 – sharptooth 2009-04-14 10:24:51