几天前,我成功实现了Windows服务中托管的WCF服务.StackOverflow的社区帮助我在这里进行了WSDL曝光.我再次感谢你.但是最近我发现这次服务还有另一个潜在的客户端,它位于与服务相同的机器上,这使我认为我应该使用namedPipesBinding添加另一个端点.
就我而言,命名管道似乎是机内通信的最佳解决方案.如果这是错误的请纠正我.
我需要为同一服务/合同公开另一个端点,但这次使用netNamedPipeBinding.但是我真的不明白如何从客户端添加服务引用.加入后愚蠢地说
<endpoint address="net.pipe://localhost/OfficeService"
binding="netNamedPipeBinding"
contract="netBridge.Development.OfficeService.IWordService"
bindingConfiguration="localBinding" />
Run Code Online (Sandbox Code Playgroud)
我试图在位于同一台机器上的Windows窗体应用程序中添加一个服务引用,键入net.pipe:// .... url.它没用.我必须提到我之前删除了mex(MetaData Exchange)端点,因为我认为没有必要.
类似于Visual Studio开发Web服务器(Cassini)限制它只在localhost上服务,我有一个只在localhost上需要的WCF服务实现.
除了Windows防火墙提示允许程序侦听面向外部的NIC之外,我不介意其他机器具有访问权限.由于这仅在内部需要,我宁愿限制WCF服务器端配置,以便它不会使防火墙检测器跳闸.
是binding.HostNameComparisonMode = HostNameComparisonMode.Exact正确的解决方案吗?我不明白这是多么的充分.
====
与Cassini一样,此服务实现是其他需要网络通信的替代方案.客户端可以配置为连接到真实服务器或在localhost上运行的虚假实现.