【问题标题】:EndpointNotFoundException in WCFWCF 中的 EndpointNotFoundException
【发布时间】:2014-01-02 06:20:34
【问题描述】:

我盯着web.config看了很久,你们能看看吗?

运行 service.Endpoint.Address.ToString() 给了我预期的结果:http://localhost:2867/Service1.svchttp://localhost:2867/Service1.svc?wsdl 给了我需要的所有方法。

如果您需要更多信息/代码,我很乐意添加。

感谢观看!


错误

http://localhost:2867/Service1.svc 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。

客户端配置

<?xml version="1.0" encoding="utf-8"?>    
<configuration>
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>    
  <system.web>        
    <httpRuntime targetFramework="4.5" />        
    <compilation debug="true" targetFramework="4.5" />    
    <pages>
      <namespaces>
       ...
      </namespaces>
    </pages>
  </system.web>    
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />         
  <handlers>
  ...    
  </handlers>
  </system.webServer>    
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IService1" />
        <binding name="Identity Management WebserviceSoap">
          <security mode="Transport" />
        </binding>
        <binding name="Identity Management WebserviceSoap1" />
      </basicHttpBinding>
    </bindings>    
    <client>
      <endpoint address="http://localhost:2867/Service1.svc" binding="basicHttpBinding"
        bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceReferenceCDP.IService1"
        name="BasicHttpBinding_IService1" />
    </client>
  </system.serviceModel>
</configuration>

服务器配置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>

  <system.web>

    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>

    <httpRuntime targetFramework="4.0" />
    <authorization>
      <allow users="?" />
    </authorization>

  </system.web>

  <system.serviceModel>    
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

    <client>
      <!--<endpoint address="https://services.howest.be/Howest.Identity.Web.Service/v1.1/facade.asmx" binding="basicHttpBinding" bindingConfiguration="Identity Management WebserviceSoap" contract="BamaFlex.IdentityManagementWebserviceSoap" name="Identity Management WebserviceSoap" />-->
    </client>

    <services>
      <service name="CollectiveDistributedPolling.Service1" behaviorConfiguration="ServiceBehavior">
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="json" contract="CollectiveDistributedPolling.IService1"></endpoint>        
      </service>
    </services>

    <behaviors>
      <endpointBehaviors>
        <behavior name="json">
          <enableWebScript />
        </behavior>
      </endpointBehaviors>


      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding name="Identity Management WebserviceSoap">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>

      <webHttpBinding>
        <binding>
          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="64" maxNameTableCharCount="2147483647" />
          <security mode="None" />
        </binding>
      </webHttpBinding>
    </bindings>

  </system.serviceModel>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />

    <!--Toegevoegd omdat de browser anders nx ontvangt (GET)-->
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
      </customHeaders>
    </httpProtocol>

    <directoryBrowse enabled="true" />

  </system.webServer>

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>

</configuration>

编辑

<services>
      <service name="CollectiveDistributedPolling.Service1" behaviorConfiguration="ServiceBehavior">
        <endpoint address="http://localhost:2867/Service1.svc" binding="webHttpBinding" behaviorConfiguration="json" contract="CollectiveDistributedPolling.IService1"></endpoint>        
      </service>
    </services>

【问题讨论】:

    标签: .net asp.net-mvc wcf exception wcf-binding


    【解决方案1】:

    要检查两件事:

    1. 您的客户端正在使用basicHttpBinding,而您的服务正在使用webHttpBinding,因此您的绑定不匹配。

    2. 您的客户端引用 ServiceReferenceCDP.IService1 的合约,而您的服务使用 CollectiveDistributedPolling.IService1 - 即使代码相同,它们也不相同。

    记住 WCF 的 ABC - 地址、绑定和合同。客户端必须匹配服务才能连接。

    【讨论】:

      【解决方案2】:

      你的服务器端配置地址属性只包含一个空字符串,在里面指定一个地址:http://localhost:2867/Service1.svc

      (请不要为此使用开发服务器。)

      【讨论】:

      • 我已经进行了调整,但我仍然得到相同的异常。
      • 更新服务参考并检查 Windows 错误日志中是否存在服务错误。
      猜你喜欢
      • 1970-01-01
      • 2013-10-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多