0

アプリケーションに .asmx Web サービスを取り込もうとしています。

このために、私は 1. クラス ライブラリ プロジェクトを作成しました。2. 指定された wsdl を使用してサービス参照を追加しました。 3. app.Config が自動的に作成されました。app.config は

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="UploadWebServiceSoap" 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>
        <customBinding>
            <binding name="UploadWebServiceSoap12">
                <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
                    messageVersion="Soap12" writeEncoding="utf-8">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                </textMessageEncoding>
                <httpTransport manualAddressing="false" maxBufferPoolSize="524288"
                    maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
                    bypassProxyOnLocal="false" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard"
                    keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
                    realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
                    useDefaultWebProxy="true" />
            </binding>
        </customBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:xxxx/xxx/UploadWebService.asmx"
            binding="basicHttpBinding" bindingConfiguration="UploadWebServiceSoap"
            contract="ServiceReference1.UploadWebServiceSoap" name="UploadWebServiceSoap" />
        <endpoint address="http://localhost:xxxx/xxx/UploadWebService.asmx"
            binding="customBinding" bindingConfiguration="UploadWebServiceSoap12"
            contract="ServiceReference1.UploadWebServiceSoap" name="UploadWebServiceSoap12" />
    </client>
</system.serviceModel>

すべての設定が完了したら、関数で web サービスのメソッドを呼び出してみました。

  UploadWebServiceSoapClient dpcClient = new UploadWebServiceSoapClient();

ここでエラーが発生します

Could not find default endpoint element that references contract 'ServiceReference1.UploadWebServiceSoap' 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.

このエラーが発生する理由を教えてください。また、バインディングがbasicHttpBindingを作成したことは理解していますが、それは何であり、同じエンドポイントが作成されました

4

1 に答える 1

0

サービス参照を複数回作成したようです。最初に ServiceReference1 を作成し、次に DPCServiceReference を作成しました。エンドポイントの構成を変更する必要があります。

contract="ServiceReference1.UploadWebServiceSoap"

contract="DPCServiceReference.UploadWebServiceSoap"

このエラーには 2 行あります。

これで問題が解決しない場合は、Soap12 で customBinding とエンドポイントを削除してみてください。

于 2013-07-29T16:12:43.483 に答える