1

いくつかのプロジェクトを含む vs2010 のソリューションがあります。

wcf プロジェクト
ウィンフォームプロジェクト
クラス ライブラリ

私のクラス ライブラリには、wcf サービスへの参照があります。winform アプリで wcf からデータを取得するためにこの参照を使用しようとすると、次のエラーが発生しました。

Could not find default endpoint element that references contract 'MikServiceShopInfo.IshopsService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.

クラス ライブラリの app.config を次のように変更しました。

<endpoint address="http://localhost:8855/LaptopsInfoService.svc"
          binding="basicHttpBinding"
          bindingConfiguration="BasicHttpBinding_ILaptopsInfoService"
          contract="ILaptopsInfoService" 
          name="BasicHttpBinding_ILaptopsInfoService" />
<endpoint address="http://localhost:8855/shopsService.svc" 
          binding="basicHttpBinding"
          bindingConfiguration="BasicHttpBinding_IshopsService"
          contract="IshopsService"
          name="BasicHttpBinding_IshopsService" />
4

1 に答える 1

1

いくつかのことが頭に浮かびます。

  1. 構成ファイルで契約名を完全に修飾します。例:

    Contract = "MikServiceShopInfo.IshopsService"

  2. <serviceModel>クラスライブラリのapp.configからWinFormの構成ファイルにセクションをコピーします。クラスライブラリは構成ファイルを使用しません-それらを参照しているアプリケーション(Webサイト、WinFormなど)の構成ファイルを使用します。

于 2012-07-13T05:51:33.007 に答える