3

WAS がホストするサービスで、異種環境の単一のコントラクトに対して複数のエンドポイント (たとえば、basicHttpBinding を使用するものと netTcpBinding を使用するもの) を公開する必要がある場合、どうすればよいでしょうか?

エンドポイントの WAS 構成について私が読んだことはすべて、エンドポイント アドレスとホスト ベース アドレスを空白のままにする必要があることを示しています。これは、WAS が .svc ファイルへのパスとプロトコルを介してアドレスを自動的に解決することになっているためです。

ただし、アドレスを説明せずに同じコントラクトに HTTP エンドポイントと TCP エンドポイントを定義することは不可能のようです。これまでの私のすべての試みは、切望されていた「バインディングインスタンスは既にリッスンするために関連付けられています」というエラーを私にもたらしました。

アイデア?

ありがとう

4

2 に答える 2

1

これがあなたのために働くかどうか見てください http://knowledgebaseworld.blogspot.com/2010/06/domain-name-replaced-with-machine-name.html 私はhainvg同じ問題でした"バインディングインスタンスはすでにuriをリッスンするために関連付けられています"これは、バインディングアドレスとともにhttpGetUrlを追加することで修正されます

于 2010-06-24T00:36:30.303 に答える
0

私の知る限り、*.svc ファイルは HTTP プロトコルでのみ実行可能です。たとえば、basicHttpBinding接続に使用できます。その場合、あなたの言うとおりです。サービスのベース アドレスとエンドポイントのアドレス属性は無視されます。サービス URI は、サーバー名、オプションでポート、SVC ファイルが存在する仮想ディレクトリ、およびその名前と拡張子によって定義されます。 SVC ファイル自体。

したがって、複数の異なる HTTP のようなプロトコルとエンドポイントを必要としない限り、その 1 つの SVC ファイルで HTTP トラフィックを処理する必要があります。

ただし、これらのオプションは、 などの非 http プロトコルには適用されませんnetTcpBinding。その場合、web.config でエンドポイント アドレスを (適切なベース アドレスからの相対パスとして) 定義する必要があります。

于 2010-06-23T19:28:05.720 に答える