这里是新手。
我的服务有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倍的正常时间才能完成)。
我该怎么做?创建另一个端点并为他提供一个功能来通信所有其他端点?或者我以错误的方式做这一切,我只是在浪费时间?