我正在尝试将ad-hoc发现添加到简单的WCF服务 - 客户端设置(当前通过控制台应用程序中的自托管实现).在Windows 7上使用VS2010进行调试,并执行我在在线教程中可以找到的任何内容,但仍然 - 发现客户端根本找不到任何内容.不用说,如果我打开客户端到正确的服务端点,我可以从客户端访问服务.
服务代码:
using (var selfHost = new ServiceHost(typeof(Renderer)))
{
try
{
selfHost.Open();
...
selfHost.Close();
Run Code Online (Sandbox Code Playgroud)
service app.config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<services>
<service name="TestApp.Renderer">
<host>
<baseAddresses>
<add baseAddress="http://localhost:9000" />
</baseAddresses>
</host>
<endpoint address="ws" binding="wsHttpBinding" contract="TestApp.IRenderer"/>
<endpoint kind="udpDiscoveryEndpoint"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceDiscovery/>
<serviceMetadata httpGetEnabled="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)
客户端发现代码:
DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
var criteria = new FindCriteria(typeof(IRenderer)) { Duration = TimeSpan.FromSeconds(5) };
var endpoints = discoveryClient.Find(criteria).Endpoints;
Run Code Online (Sandbox Code Playgroud)
"端点"集合总是空洞的.我试过从调试器,从命令行,从管理命令行运行服务和客户端 - 一切,但无济于事(当然,所有在本地机器上,不是我需要它运行我的整个子网最终)
任何帮助,将不胜感激 :-)