2013-12-14 17 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錯誤日誌中是否有服務錯誤。 –

相關問題