有没有办法在单声道中使用WCF Discovery?

我正在尝试让WCF Discovery在单声道3.2.8中工作。 单声道网页提到了许多Discovery行为应该存在,但我无法通过代码设置或App.config设置来使其工作。 这在.net中100%有效,所以我知道至少原则是正确的。

这类似于未解决的问题: WCF Udp Discovery in mono

但是,我的具体问题是:有没有办法在单声道中使用WCF Discovery?

App.config安装程序提供此错误:

[ERROR] FATAL UNHANDLED EXCEPTION: System.Configuration.ConfigurationErrorsException: Error deserializing configuration section behaviors: Invalid element in configuration. The extension name 'serviceDiscovery' is not registered in the collection at system.serviceModel/extensions/behaviorExtensions 

代码设置会出现此错误:

 System.InvalidOperationException: Contract 'TargetService' is not implemented in this service 'MyService' 

如果需要,我可以提供代码,但由于我要求另一种有效的方法,我不相信它在这一点上是必需的。

如果您在4.5中引用Mono System.ServiceModel.Discovery – 您会注意到CreateBehavior()上有一个NotImplemented图标(位于:System.ServiceModel.Discovery.Configuration.ServiceDiscoveryElement),这似乎是我的问题的根本原因。

我正在努力解决同样的问题。 我已经尝试了很多方法,但我也无法让它工作。 我认为你已经解决了CreateBehavior()没有实现的问题的根本原因。

我确实为我的应用程序创建了一个解决方案,尽管它不像纯WCF解决方案那样干净。 使用mono项目的Zeroconf实现来发布服务,然后在客户端浏览它(再次使用zeroconf)为我工作。 找到服务后,我使用zeroconf结果来创建我的WCF代理。

我对此使用的是同一子网内部客户端的内部服务,这使得此实现相对容易。 我不确定它是否/如何跨子网工作,但根据“零配置网络:权威指南”(Cheshire,Seienberg),它可以完成。