私のプログラムは、プロセス間通信にMicrosoft RPCを使用します。 RPCを受信するための準備をするためには、プログラムは、次のシーケンスを実行する呼び出し:RPCサーバーの起動時に「エンドポイントは重複しています」
RpcServerUseProtseqEp()、次いで
RpcServerRegisterIf()、次いで
RpcServerListen()
プログラムは、上記のシーケンスでRPCサーバーを起動し、しばらく動作した後、終了し、後で別のプログラムによって再起動される可能性があります。 RpcServerUseProtseqEp()のパラメータ値のセットは、プログラムが実行されるたびに同じです。
再起動後最初にシーケンスを実行すると、常に正常に終了しますが、それ以降の実行ではRPC_S_DUPLICATE_ENDPOINT( "エンドポイントは重複しています)"が返されます。現在のところ、この特定のエラーコードは無視され、 、他のすべてのプリミティブは通常正常に動作します。
RpcServerUseProtseqEp()を使用する正しい方法は何ですか?登録されたエンドポイントを取り消すか、RPC_S_DUPLICATE_ENDPOINTエラーコードを無視したままクリーンアップを行う必要がありますか?
RpcServerInqBindings()を呼び出してから、RpcEpUnregister()を呼び出しようとしました。前者は成功し、後者は「サーバーのエンドポイントが操作を実行できませんでした」を返します。 – sharptooth