質問

更新3:
Visual Studio 2008テストプロジェクトを作成し、共有サイトWCFサービス参照へのサービス参照を作成しようとしましたが、次のエラーを受け取りました:

  

ダウンロード中にエラーが発生しました   ' http://apps.mydomain/MyService.svc '。   HTTPステータスでリクエストが失敗しました   400不正な要求。メタデータには   解決できない参照:   ' http://apps.mydomain/MyService.svc '。   コンテンツタイプapplication / soap + xml。   charset = utf-8はサポートされていません   サービス    http://apps.mydomain/MyService.svc '。   クライアントとサービスのバインディングは   不一致。返されたリモートサーバー   エラー:(415)処理できません   コンテンツタイプ   'application / soap + xml; charset = utf-8 '   予期されたタイプ 'text / xmlではありません。   charset = utf-8 '..サービスが   現在のソリューションで定義されている、試してください   ソリューションの構築と追加   サービス参照を再度。

更新2:
@Nick-各エンドポイントのアドレスを各サーバーの完全修飾パスで明示的に設定するという提案を試みましたが、それでも同じ結果が得られます。

また、共有サイトのURLでlistenUri属性を設定しようとすると、404エラーの代わりに400 bad requestエラーが表示されます。

更新
いくつかの追加調査の後、 http://apps1.mydomain http://apps2.mydomain で、<!> quot; Server Application Unavailable <!> quot;を超えることができました。エラー。

共有サイトを参照しようとすると404エラーが表示されます( http://apps.mydomain )、しかし http://apps1.mydomain および http://apps2.mydomain サービスリファレンス。

元の問題

私の会社は、 Microsoft NLB を使用して、トラフィックを負荷分散しますIISサーバー。私は最近、各IIS 6 Windows Server 2003 Standard Edition SP1サーバーにWCFサービスを展開しました。 IE 7を使用して共有ドメイン名を参照しようとすると、次のエラーが表示されました。

  

サーバーアプリケーションは利用できません   あなたがしようとしているウェブアプリケーション   このWebサーバー上のアクセスは現在   利用できません。 <!> quot; Refresh <!> quot;を押してください。   再試行するWebブラウザのボタン   あなたの要求。

     

管理者注:エラーメッセージ   この特定の原因の詳細   リクエストの失敗は   Webのアプリケーションイベントログ   サーバ。このログエントリを確認してください   このエラーの原因を発見する   発生します。

コンシューマはサービスを使用するために http://apps.mydomain をポイントしますが、仮想ドメインは http://apps1.mydomain または http://apps2.mydomain 。各サーバーのサービスを参照しても、そのエラーは表示されません。

サービスは現在、匿名のbasicHttpBindingを使用しています。

他の誰かがこの問題を経験しましたか?

履歴

このエラーが発生する前に、3つすべてのドメイン名( http://apps.mydomain http://apps1.mydomain http://apps2.mydomain ):

  

このコレクションには既に   スキームhttpを使用したアドレス。できます   スキームごとに最大1つのアドレスである   このコレクション。

ServiceHostFactory クラスを使用しました.svcファイルをカスタマイズして、カスタムサービスファクトリを指定します。次に、ServiceHostFactoryから継承し、必要に応じてオーバーライドすることにより、カスタムファクトリを作成します。

public class MyFactory : ServiceHostFactory
{
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
    {
        return new ServiceHost(serviceType, baseAddresses[0]);
    }
}

<%@ ServiceHost Language="C#" Factory="MyFactory" Debug="true" Service="MyService" CodeBehind="~/App_Code/MyService.cs" %>
役に立ちましたか?

解決

WCFサービスと消費アプリケーションのさまざまな構成を試してみました。作業中のサービス参照の1つへのサービス参照を作成しました( http://apps1.mydomain または http://apps2.mydomain )を使用しているアプリケーションで。次に、共有サイトのWCFアドレス( http://apps.mydomain を指すように、クライアント構成のエンドポイント参照を変更しました。 )そして、サービスを利用して使用することができました。

他のヒント

WCFとロードバランシングで以前に問題が発生し、サーバーに異なるIPアドレスを持つ複数のネットワークカードがあり、WCFは最初に見つかったIPアドレスを検出するだけでした。 WCFが正しいサーバーにバインドするように、各サーバーのサービス定義にIPアドレスを明示的に設定する必要がありました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top