小编kbo*_*kbo的帖子

WCF发现根本不起作用

我正在尝试将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)

"端点"集合总是空洞的.我试过从调试器,从命令行,从管理命令行运行服务和客户端 - 一切,但无济于事(当然,所有在本地机器上,不是我需要它运行我的整个子网最终)

任何帮助,将不胜感激 :-)

c# wcf service-discovery discovery

16
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

discovery ×1

service-discovery ×1

wcf ×1