7

BigIP を使用して、2 つの IIS サーバー間で負荷を分散しています。最近、IIS 6 によってホストされる WCF サービスを、これら 2 つの Windows Server 2003R2 サーバーに展開しました。

各サーバーは 2 つのホスト ヘッダーで構成されます。1 つはロード バランサー アドレス用で、2 番目のホスト ヘッダーはそのサーバーのみを指します。そうすれば、デバッグのために負荷分散グループ内の特定のサーバーを参照できます。

したがって、実行するとすぐにエラーが発生しました。

このコレクションには、スキーム http のアドレスが既に含まれています。このコレクションには、スキームごとに 1 つのアドレスしか存在できません。パラメータ名:item

私はいくつかの調査を行い、フィルターを実装してホストの1つを無視するように指示することができますが、そのアドレスからサーバーにアクセスすることはできません.

<serviceHostingEnvironment>
    <baseAddressPrefixFilters>
        <add prefix="http://domain.com:80"/>
    </baseAddressPrefixFilters>
</serviceHostingEnvironment>

このシナリオで、 http://domain.com/service.svcおよびhttp://server1.domain.com/service.svcを介して WCF サービスにアクセスできる最適なソリューションは何ですか?

一部のサイトが示唆するように、独自の ServiceFactory を作成する必要がある場合、これに関するサンプル コードはありますか?

どんな助けでも大歓迎です。

編集: 可能であれば、2 つのアドレスのいずれかから WCF サービスにアクセスできる必要があります。

ありがとうございました。

4

3 に答える 3

1

bigIP上に2つの新しい仮想サーバーを作成し ますhttp://server1.domain.com/http://server2.domain.com/

特定のサーバーのみを含む各VSのプールを作成します。そのため、実際の負荷分散は行われず、その方法でアクセスします。外部IPが不足している場合でも、本番ドメイン名と同じIPを使用し、iruleを使用してトラフィックを適切なプールに転送できます。

お役に立てれば

于 2008-11-05T23:18:40.507 に答える
0

使用するURLは、IISのバインディングに基づいています。Webサイトには複数のバインディングがありますか?もしそうなら、またはWCFサービスは複数のサイトで使用されていますか?もしそうなら、あなたはSOLAFAIKです。この問題が発生しました。基本的に、HTTPにバインドできるIISは1つだけです。それ以外の場合は、爆弾が発生します。

また、ServiceHostFactoryの実装に関する情報もあります。これは、WCFサービスに1つのアドレスからしかアクセスできない可能性がある場合に機能します(残念ながら、これは不可能でした)。

于 2008-09-23T18:17:54.540 に答える
0

特定のマシンをテストする必要がある場合は、ロード バランシングを「バイパス」して、テスト元のマシンの「hosts」ファイルを編集することで、正しいホスト ヘッダーが送信されて WCF が正常に機能するようにすることができます。次に例を示します。

10.0.0.11 から 10.0.0.16 は、クラスター「cluster.mycompany.local」にある 6 つのホストであり、負荷分散された IP アドレスは 10.0.0.10 です。テスト時に、「10.0.0.13 cluster.mycompany.local」という行をマシンのホスト ファイルに追加して、クラスタ内の 3 番目のマシンを直接ヒットできるようにすることができます。

于 2008-10-05T09:23:00.390 に答える