1

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

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

它被添加到项目中并且我设法创建客户端对象并调用它的类但是当我运行服务时出现以下错误

    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>

注意到网络服务提供商在不同的局域网上我错过了什么吗?请速指教

4

2 回答 2

1

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


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

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

于 2013-07-03T11:59:21.497 回答
0

是的,正如您所说,基地址指向其他 LAN 中的地址,这就是您无法连接到它的原因。

于 2013-07-04T12:36:14.877 回答