名前付きパイプバインディングを介してWCFサービスを公開する
-
06-07-2019 - |
質問
イントロ:
数日前にWindowsサービスでホストされているWCFサービスを正常に実装しました。ここStackOverflowのコミュニティは、で私を助けてくれました。 WSDLの公開はこちら。改めて感謝します。しかし最近、このサービスの別の潜在的なクライアントが今回サービスと同じマシン上にあることがわかったため、namedPipesBindingを使用して別のエンドポイントを追加する必要があると思います。
名前付きパイプは、私が思う限り、マシン内通信に最適なソリューションのようです。 これが間違っている場合は修正してください。
問題:
同じサービス/契約の別のエンドポイントを公開する必要がありますが、今回はnetNamedPipeBindingを使用します。しかし、クライアントからサービス参照を追加する方法を本当に理解していません。追加後の愚かさ
<endpoint address="net.pipe://localhost/OfficeService"
binding="netNamedPipeBinding"
contract="netBridge.Development.OfficeService.IWordService"
bindingConfiguration="localBinding" />
net.pipe:// .... URLを入力して、同じマシンにあるWindows Formsアプリケーションにサービス参照を追加しようとしました。うまくいきませんでした。 mex(MetaData Exchange)エンドポイントを削除したことに言及する必要があります。これは必要ないと考えたためです。
- このmexエンドポイントは、名前付きパイプエンドポイントバインディングの検出に必要ですか?
- クライアントアプリのサービス参照を名前付きパイプエンドポイントに追加するにはどうすればよいですか
解決
localBindingの内容に興味がありますが、エンドポイントは正常に見えます...
最も簡単なオプションのように思えるのは、サービスのエンドポイントに一致するように名前付きパイプクライアントのエンドポイント構成を変更するだけです。クライアントは、クライアント構成ファイル内の唯一のエンドポイントである限り、気にする必要はありません。それ以外の場合は、エンドポイントに名前を追加し、プロキシオブジェクトを新規作成するときにクライアントに特定の名前を選択させる必要があります。
がんばって!
他のヒント
mexエンドポイントは、wsdlが構築されるhttpの場所を提供するため、開発中に必要です。 wsdlは、名前付きパイプ、TCP / IP、またはその他のものを介してサーバーと通信する方法をクライアントに説明します。クライアントアプリが名前付きパイプバインディングへのプロキシを構築し、構成をセットアップすると、mexエンドポイントは不要になります。したがって、必要に応じて、環境を介した展開の前にmexエンドポイントを削除できます。