我正在尝试实现可扩展的 WCF 解决方案,可在 NetFX Harmonics:创建精简、简化且可扩展的 WCF 连接
所以我的解决方案有 4 个项目
Contact.ServiceClient 有实际调用服务的 App.config 和 Program.cs。
应用程序配置
<configuration>
<appSettings>
<add key="PersonServiceActiveEndpoint" value="PersonServiceBasicHttpBinding" />
</appSettings>
<system.serviceModel>
<client>
<endpoint name="PersonServiceBasicHttpBinding"
address="http://localhost:1031/Person.svc"
binding="basicHttpBinding"
contract="Contact.Service.IPersonService" />
</client>
</system.serviceModel>
</configuration>
程序.cs
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("http://localhost:1031/Person.svc");
IPersonService personService = new ChannelFactory<IPersonService>(basicHttpBinding, endpointAddress).CreateChannel();
Person person = personService.GetPersonData("F488D20B-FC27-4631-9FB9-83AF616AB5A6");
Console.WriteLine(person.FirstName);
当我尝试运行此示例时,抛出异常:
在 http://localhost:1031/Person.svc 上没有侦听端点可以接受消息。这通常是由不正确的地址或 SOAP 操作引起的。
附注Person.svc 在我的 Contact.ServiceHost 项目中
<%@ ServiceHost Service="Contact.Service.PersonService" %>
服务主机的配置是什么? 听起来像两个问题之一:
我想通过检查服务主机项目的 web.config,您可能会发现它要么正在侦听不同的端口,要么根本没有运行,因此没有侦听。
Visual Studio 主机是否已启动并托管该服务? 您通常会在时钟旁边的通知区域中看到一个小“吐司”弹出窗口,表示主机正在运行,您可以看到它正在哪个端口上运行。 如果这种情况没有发生,那么您可能需要对其进行配置以启动主机项目以及客户端。
要使客户端和服务器同时启动,您需要: