具有多个合同类型的WCF发现

时间:2014-06-18 10:53:54

标签: c# wcf discovery

这里是新手。

我的服务有4个端点,有4个不同的合同。这是因为我有一些要求来实现。现在,我不想使用固定端口,我阅读HERE我可以在端点配置中使用listenUriMode="Unique"来获取第一个可用的端口。

这可行,我的服务正常运行。由于我不知道使用了哪个端口,因此我必须使用WCF发现来接收我的服务。

我的客户端使用此代码搜索端点

DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
FindCriteria findCriteria = new FindCriteria(typeof(ImyServiceInterface));

findCriteria.Duration = TimeSpan.FromSeconds(5);

FindResponse findResponse = discoveryClient.Find(findCriteria);

MessageBox.Show(string.Format("Endpoints found: {0}", findResponse.Endpoints.Count));

这可行,但仅适用于具有ImyServiceInterface接口的端点。我可以进行4次扫描并得到我的4个端点,但这听起来像是非常错误的方法(它需要4倍的正常时间才能完成)。

我该怎么做?创建另一个端点并为他提供一个功能来通信所有其他端点?或者我以错误的方式做这一切,我只是在浪费时间?

0 个答案:

没有答案