クライアントapp.configのbasichttpbindingにwshttpbindingの変更
-
15-10-2019 - |
質問
WCFサービスでは、wshttpbindingとしてエンドポイントバインディングセットがあります。ただし、Visual Studioを使用してサービスを追加すると、クライアントapp.configがBasichttpbindingとしてバインディングを表示します。なぜこれが起こっているのか知っている人はいますか?
サービスweb.config(IIS 7.5でホスト)のエンドポイント。 BaseadDressesから住所を取得します
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="wsHttpServiceBinding"
contract="MyProject.IMyService" />
クライアントapp.config:
<client>
<endpoint address="http://example.com/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyService"
contract="Service.MyService" name="BasicHttpBinding_MyService" />
</client>
解決
-Ladislav Mrnkaは私を正しい方向に向けました。どうもありがとう。
答えは簡単だと思ったので、質問をシンプルにしようとしました。しかし、これが私の問題に対する答えがあった場所であるため、私は自分のセットアップをもう少し詳細に説明する必要がありました。
WCFサービスアプリケーションにサービス契約(IMyService)を存在させる代わりに、さまざまなプロジェクト全体で再利用できるように、すべてのインターフェイスを保持する別のドメインプロジェクトにありました。私のWCFサービスアプリケーションでは、.web.configでは、実装ではなくインターフェイスプロジェクトを指すサービス名がありました。これにより、VS2010(svcutil.exe)がデフォルト設定に基づいてプロキシと構成を作成しました(Machine.config(WCF 4)に存在すると思います)。
したがって、この問題に出くわす可能性のある他の人を要約することは、間違った場所を指しているサービス名でした。サービス名が実装(通常はWCFサービスアプリケーション-MyProject.Myservice)を指していること、およびエンドポイント契約がサービス契約(WCFサービスアプリケーションまたは外部プロジェクト-MyProject.ImyServiceまたはInterfaces.imyServiceを指していることを確認してください。 )。
ご協力ありがとうございます。