負荷分散されたシナリオでホストされているWCFサービスがあります。サービスはIISを使用してホストされます。負荷分散された2つのサーバーがあります。
以下はend points
サーバー内です。
https://labA.myCompany.com:44330/MyService/InternalService.svc
https://labB.myCompany.com:44330/MyService/InternalService.svc
私host base address
は
baseAddress=" https://test-LoadBalanced.myCompany.com/MyService".
このホストベースアドレスは、ロードバランシングされたアドレスからのものです。
https://test-LoadBalanced.myCompany.com/MyService/InternalService.svcと入力 すると、サービスページが表示されます。その中で、ServerAボックスのエンドポイントアドレスとサーバーBボックスのエンドポイントアドレスのwsdlリンクを取得することがあります。
参照
WCFサービスエンドポイントとホストベースアドレスの質問に対する回答は次のとおりです。
IISでWCFサービスをホストする場合、ベースアドレスは.svcファイルへのURLのみにすることができます。
クライアントはサービスのベースアドレスを認識しておらず、ネットワークの側で同様の何かをサポートする必要はありません。その結果、クライアント側のオブジェクトモデルまたは構成セクションにベースアドレスに関連するものは何も見つかりません。クライアントは特定のエンドポイントを選択するだけで、常に絶対アドレスが設定され、その絶対アドレスによって送信時に使用されるアドレスが決まります。
負荷分散から
デフォルトでは、BasicHttpBindingはKeep-Alive値を持つメッセージで接続HTTPヘッダーを送信します。これにより、クライアントは、それらをサポートするサービスへの永続的な接続を確立できます。この構成では、以前に確立された接続を再利用して後続のメッセージを同じサーバーに送信できるため、スループットが向上します。ただし、接続を再利用すると、クライアントが負荷分散ファーム内の特定のサーバーに強く関連付けられる可能性があり、ラウンドロビン負荷分散の効果が低下します。この動作が望ましくない場合は、CustomBindingまたはユーザー定義のBindingでKeepAliveEnabledプロパティを使用して、サーバーでHTTPキープアライブを無効にすることができます。
クライアント
負荷分散されたアドレスを使用してクライアントを作成しました。ただし、クライアント構成では、エンドポイントアドレスはサーバーAボックスのアドレスです。負荷分散されたアドレスではありません。
質問
では、クライアントはどのようにして負荷分散パフォーマンスの利点を活用できるのでしょうか。サービス操作を取得するために常にサーバーAにヒットしますね。