WCF单声道Udp发现

本文关键字:Udp 发现 声道 单声道 WCF | 更新日期: 2023-09-27 18:27:58

我需要在我的mono项目中启用WCF发现,所以我按照这个例子来测试功能。这是我的测试代码:

Uri baseAddress = new Uri(string.Format("http://{0}:8000/calc/{1}/",
                     System.Net.Dns.GetHostName(), Guid.NewGuid().ToString()));
using (ServiceHost serviceHost = new ServiceHost(typeof(testService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(icalc), new WSHttpBinding(), string.Empty);
    serviceHost.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
    serviceHost.AddServiceEndpoint(new UdpDiscoveryEndpoint()); //<-- Exception here
    serviceHost.Open();
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.ReadLine();
}
[ServiceContract()]
public interface icalc
{
    [OperationContract()]
    int sum(int a, int b);
}
[ServiceBehavior()]
public class testService : icalc
{
    public int sum(int a, int b)
    {
        return a + b;
    }
}

现在问题出在哪里添加了UdpDiscoveryEndpoint。我得到了例外:

未在此服务中实现约定"TargetService"testService"

我试着查看单声道源,但找不到解决这个问题的方法。期待任何关于如何在mono中启用wcf发现的想法,或者关于如何修复我的测试代码的建议。P.s.代码使用.net框架非常有效。

WCF单声道Udp发现

在Mono是否有WCF 4.5 UDP工作的问题上,这是不太可能的。