0

WCFサービスに接続したい。サービス参照はクラスライブラリにあります。App.configを単体テストプロジェクトに追加することで、MSTEST単体テストでサービスに正常に接続できました。アプリケーションのサービスへの接続に失敗しました。アプリケーションの構成ファイルが見つかりました。ファイルを編集でき、構成に追加したキーにアクセスできることを確認しました。

<add key="testKey"

ただし、アプリケーションに接続しようとすると、エラーが発生します

ServiceModelクライアント構成セクションでコントラクト'ContractName.Service'を参照するデフォルトのエンドポイント要素が見つかりませんでした。これは、このコントラクトに一致するエンドポイント要素がクライアント要素で見つからなかったことが原因である可能性があります。

セクションを追加しました

<system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IPinGenerator" closeTimeout="00:01:00"
                 openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                 allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                 maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                 messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                 useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                     maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                         realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://somewhere"
             binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IPinGenerator"
             contract="CompanyNamePinGenerator.IPinGenerator" name="BasicHttpBinding_IPinGenerator" />
        </client>
    </system.serviceModel>

しかし、それは問題を解決しません。contract=""また、生成されたコード属性に名前空間を追加してみました

[System.ServiceModel.ServiceContractAttribute(ConfigurationName=

この問題を解決する方法はありますか?

4

1 に答える 1

0

この問題は、名前に一致するエンドポイントがクライアント構成にないために発生しますContractName.Service

私が見るのは、異なるコントラクトを持つエンドポイントが1つしかないことだけですCompanyNamePinGenerator.IPinGenerator

プロキシファイルにあるサービスクラスまたはインターフェイスは、を参照しContractName.Service、それは構成にありません。

あなたはいくつかのことを確認する必要があります:

  1. 生成されたプロキシを最新のものに更新します
  2. クライアント構成に、サービスに必要なすべてのエンドポイントが含まれていることを確認してください。

通常、この種の問題に直面したときは、VSコマンドプロンプトを開いてsvcutil.exeを実行し、生成されたファイルからプロキシコードとクライアント構成をコピーします。

于 2012-06-18T10:28:57.683 に答える