2013-08-16 4 views
1

Мне нужно включить обнаружение WCF в моем монопроекте, поэтому я следовал примеру this, чтобы проверить функцию. Это мой тестовый код:WCF Udp Discovery in mono

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. I'am получает исключение:

Контракт «TargetService» не реализован в этой службе «TestService»

Я попытался посмотреть на источник моно, но could't найти какие-либо решений для устранения этой проблемы , С нетерпением ждем любых идей, как включить обнаружение wcf в моно или предложениях, как я могу исправить свой тестовый код. P.s. код отлично работает с использованием .net framework.

ответ

0

Очень маловероятно во время вопроса о том, работает ли Mono WCF 4.5 UDP.