我一直盯着web.config方式,你们好好看一下吗?
正在运行service.Endpoint.Address.ToString()
会给我预期的结果:http://localhost:2867/Service1.svc
和http://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>
答案 0 :(得分:4)
要检查两件事:
您的客户正在使用basicHttpBinding
,而您的服务正在使用webHttpBinding
,因此您的绑定不匹配。
您的客户正在引用ServiceReferenceCDP.IService1
作为合同,而您的服务正在使用CollectiveDistributedPolling.IService1
- 这些不一样,即使代码相同。
记住WCF的ABCs - 地址,绑定和合同。客户端必须匹配要连接的服务。
答案 1 :(得分:1)
您的服务器端配置地址属性仅包含空字符串,请在其中指定地址:http://localhost:2867/Service1.svc
(请不要使用开发服务器。)