1

Windows サービス プロジェクト内で使用する物理WSDLファイルを受け取りました。C#

プロジェクトフォルダー内のファイルを置き換え、「サービス参照の追加」から追加しました

プロジェクトに追加され、クライアントオブジェクトを作成してそのクラスを呼び出すことができましたが、サービスを実行すると以下のエラーが発生しました

    Could not find default endpoint element that references contract 'ABRECONService.ServiceIF' 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.
   at System.ServiceModel.Description.ConfigLoader.LoadChannelBehaviors(ServiceEndpoint serviceEndpoint, String configurationName)
   at System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName, Configuration configuration)
   at System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName)
   at System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address)
   at System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
   at System.ServiceModel.EndpointTrait`1.CreateSimplexFactory()
   at System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait)
   at System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
   at System.ServiceModel.ClientBase`1..ctor()
   at sample.eZeePayService.DateExchangeServiceIFClient..ctor() in C:\Users\Hani\Documents\Visual Studio 2010\Projects\sample\sample\Service References\ABRECONService\Reference.cs:line 32
   at sample.ABRECONHandler.ABRECONCaller(String message) in C:\Users\Hani\Documents\Visual Studio 2010\Projects\sample\sample\ABRECONHandler.cs:line 15

そしてapp.configは

<?xml version="1.0"?>
<configuration>
  <configSections>
  </configSections>
  <appSettings>
  </appSettings>
  <system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy>
  </system.net>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="ServiceIFBinding" 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>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ABRECON.MainBehavior">
                    <serviceMetadata httpGetEnabled="true"/>
                    <serviceDebug includeExceptionDetailInFaults="false"/>
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service behaviorConfiguration="ABRECON.MainBehavior" name="ABRECON.Main">
                <endpoint address="" binding="wsHttpBinding" contract="ABRECON.IMain">
                    <identity>
                        <dns value="localhost"/>
                    </identity>
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
                <host>
                    <baseAddresses>
                        <add baseAddress="http://localhost:8732/Design_Time_Addresses/ABRECON/Main/"/>
                    </baseAddresses>
                </host>
            </service>
        </services>
    </system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup>
</configuration>

Web サービス プロバイダーが別の LAN 上にあることに注意してください。至急教えてください

4

2 に答える 2

1

WSDL ファイルからサービス クラスを作成するだけでは十分ではありません。app.configサービスへのアクセス方法を示す情報をクライアントの構成ファイル ( ) に追加する必要があります。


http://localhost:8732/Design_Time_Addresses/ABRECON/Main/指定された WSDL ファイルからサービス参照を作成する代わりに、サービス参照ダイアログを(MEX プロファイルのアドレス)に直接指定することができます。サービスが実行されていることを確認します。

app.configすべてがうまくいけば、それぞれの構成エントリが自動的に追加されます。

于 2013-07-03T11:59:21.497 に答える