我正在尝试在Mono中实现发现功能。
目标是在Raspberry Pi 3上使用Raspbian在Mono上运行带有Mono的.NET应用程序。此应用程序应支持发现功能。
首先,我尝试使用WCF发现方法:
host.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
host.AddServiceEndpoint(new UdpDiscoveryEndpoint());
这在.NET中完美运行,但总是抛出InvalidOperationException
:
合同' TargetService'未在此服务中实施' ....'
经过一番调查后,我发现这是一个单声道问题。
在这篇文章中:
Is there any way to use WCF Discovery in mono?他们用Mono.Zeroconf实现了一项发现。
所以我尝试了Mono.Zeroconf方法:
为了让它工作,我自己编译了Mono.Zeroconf源代码,从这里开始:https://github.com/mono/Mono.Zeroconf。
这在安装了Bonjour的Windows环境中完美运行。
但Avahi的提供商(这是Bonjour的Linux等价物)已经过时了
无论如何我设法编译它,但在Raspbian / Mono下运行时确实会抛出一些奇怪的异常。
所以我找不到一个解决方案来发现从任何其他(Windows或Linux)环境在Linux机器上运行的Mono项目。
有没有人能解决上述问题之一或采用全新方法?
只要我可以在.NET中实现它并使用Mono运行,我很乐意使用每个解决方案。