2016-03-25 10 views
1

サービス発見にMono.ZeroConfを使用しようとしています。私はサービスを正常に発見できますが、すべてのサービスのポートは実際の値ではなく常に0に設定されています。Mono.Zeroconfサービスポートは常に0に設定されます

私は.NET 4を使用して、そしてZeroConf 0.9.0ています、ここに私のコードは次のとおりです。

public MainWindow() 
{ 
    serviceBrowser = new ServiceBrowser(); 
    serviceBrowser.ServiceAdded += ServiceAdded; 
    serviceBrowser.Browse(0, AddressProtocol.Any, "_http._tcp.", "local"); 
} 

private void ServiceAdded(object o, ServiceBrowseEventArgs args) 
{ 
    Console.WriteLine("*** Found name = '{0}', type = '{1}', domain = '{2}'", 
    args.Service.Name, 
    args.Service.RegType, 
    args.Service.ReplyDomain); 
    args.Service.Resolved += ServiceResolver; 

    if (args.Service.Name.Equals("MyService") && 
     args.Service.RegType.Equals("_http._tcp.")) 
    { 
     args.Service.Resolve(); 
    } 
} 

private void ServiceResolver(object o, ServiceResolvedEventArgs args) 
{ 
    IResolvableService service = o as IResolvableService; 
    Console.Write("*** Resolved name = '{0}', host ip = '{1}', hostname = {2}, 
    port = '{3}', " + "interface = '{4}', address type = '{5}'", 
    service.FullName, service.HostEntry.AddressList[0], 
    service.HostEntry.HostName, service.Port, 
    service.NetworkInterface, service.AddressProtocol); 
} 

私は0.9.0を使用する場合、すべてのポート値は予想通りですが、サービスを発見するためにMZClient 0.8.0を使用する場合は、同じ事が起こる。

適切なポート値を取得するにはどうすればよいですか?それはバージョン0.9.0の何らかの不具合、または何か他のものに起因するのでしょうか?

答えて

1

これはMono.Zeroconfのバグが原因で、this pull requestに修正されています。

プルリクエストが受け入れられ、Nugetパッケージが再度公開されるまで、自分でライブラリを構築する必要があります。

関連する問題