无法调用web服务

本文关键字:服务 web 调用 | 更新日期: 2023-09-27 18:20:46

我收到了要在C# Windows服务项目中使用的物理WSDL文件。

我替换了项目文件夹中的文件,并从"添加服务参考"中添加

它被添加到项目中&我设法创建了客户端对象并调用了它的类但当我运行服务时,下面的错误引发了

    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服务

仅仅从WSDL文件创建服务类是不够的。您需要向客户端的配置文件(app.config)中添加指示如何访问服务的信息。


您可以尝试将服务引用对话框直接指向http://localhost:8732/Design_Time_Addresses/ABRECON/Main/(MEX配置文件的地址),而不是从给定的WSDL文件创建服务引用。请确保服务正在运行。

如果一切顺利,这将自动将相应的配置条目添加到app.config中。

是的,正如您所说,基本地址精确定位到其他LAN中的地址,这是您无法连接到它的原因。