2009-09-02 5 views
0

IIS7を使用してWCFサービスをホストしているため、サービスエンドポイントアドレスへの要求が正しいsvcファイルに転送されます。明らかにクライアント構成では、消費したいサービスのエンドポイントアドレスを指定する必要がありますが、サービス構成のエンドポイントアドレスを指定する必要があります(そうでない場合は例外をスローします)。WCFサービスのエンドポイントアドレスを指定する必要があるのはなぜですか?

ウェブファーム内の複数のマシンで同じサービスを実行したいので、これは迷惑です。

答えて

3

ネットワークの観点から見ると、ロードバランサを使用するときです。 にはがあり、サービスを提供しているマシンを見つけるために何らかの種類のアドレスを持っていることがあります。 Webサーバーの検索に使用されているURLのDNS部分や、Xサーバーの検索に変数DISPLAYが使用されていることは変わりません。

ロードバランサを使用すると、1つのアドレスを使用して、バックエンドの多くの実際のサーバーの1つに配信できます。もちろん、どのサーバーが要求を処理するかは問題ではありません。

WCFアドレスについては、TCP/IPのポートに類似したエンドポイントです。

複数のWCFサービスを区別する必要があります。特定のアーキテクチャーに複数のエンドポイントを提供することができますので、それらを分離する方法が必要です。

通常、それよりも適応性が低い方が良いです。

+0

お返事ありがとうございます。私は少し明確にしようと私の質問を更新しました。私はクライアントではなく、サービスエンドポイントアドレスについて話しています。サービスを区別するために住所が必要なのはなぜですか? IISはサービスを実装するクラスを指す特定のsvcにルーティングします。 – JontyMC

1

私は同じ懸念を抱いています。私が消費するエンドポイントのアドレスを知っている場合、エンドポイントでそのアドレスを明示的に指定する必要があるのはなぜですか?最近私はアドレスを指定せずにwebHttpBindingエンドポイントを作成し、契約に正常にアクセスできました。このサービスはasp.net開発サーバーの一部としてホストされていました。 IISの下でホスティングするときに必要なアドレスです。またはアドレスは、wsHttpBinding、TCPBindingなどの他のバインディングに必要ですか?

0

.Net以外のプラットフォームにあるサービスにアクセスするクライアントの範囲を広げるためには、クライアントに「バカだね、ここで私はあなたが探している正確なサービスです」という統一的な方法が必要です。 この場所(すなわちアドレス)で私は、これらの多くのプロトコル(ieBinding)で私に接続して、これは私たちがコミュニケーションのために署名契約です。」 一言で言えば、クライアントにサービスが見つかる場所を知らせるためにエンドポイントが必要です。

あなたの場合、エンドポイントを知っているので、クライアントを設定することができます。しかし、これを知らない顧客にとっては、サービスにアプローチする必要があります。エンドポイントは、クライアントに与えられるサービスのような訪問カードです。

関連する問題