2013-12-14 23 views
0

我一直在盯着web.config的方式来长时间,你们可以看看吗?WCF中的EndpointNotFoundException

运行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> 

回答

4

两件事情来检查:

  1. 你的客户端使用basicHttpBinding,并且您的服务使用webHttpBinding,因此您具有绑定不匹配的情况。

  2. 您的客户端所引用ServiceReferenceCDP.IService1的合同,您的服务使用CollectiveDistributedPolling.IService1 - 这些都是不一样的,即使代码是相同的。

记住WCF的ABCs - 地址,绑定和契约。客户端必须匹配要连接的服务。

1

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

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

+0

我做了调整,但我仍然得到相同的例外。 – David

+0

更新服务参考并检查Windows错误日志中是否有服务错误。 –

相关问题