在WCF Web服务部署中,我需要一个Web服务来连接到同一类型的多个服务。这些服务以动态方式添加到部署中,其数量应该是灵活的。 显然,通常的方法“创建绑定”在这种情况下不是解决方案,因为我需要为我最终可能使用的每个服务创建绑定。
建议的方法是什么? 起初我正在考虑在多个服务之一中创建绑定(在编译之前)。添加的新服务只是传达他们的端点,在发送它们之前我会更改服务的端点名称。如果我想并行发送这些服务,这似乎非常错误和坏。
是否有正确的方法来处理相同类型的服务而不重复绑定?
我不习惯为WCF设置更复杂的场景,如果我没有解释好这个问题,那么帮助改写这个问题并为我的问题找到新的搜索词可能会很棒。
答案 0 :(得分:1)
我建议以编程方式配置客户端,他是一个例子How to programmatically connect a client to a WCF service?。您可以存储在saparate文件中的端点URL。在部署期间可以修改该文件
var myBinding = new BasicHttpBinding();
var urlList = GetUrlsFromCustomConfigFile();
var factoriesOfTheSameType = new List<ChannelFactory<IMyService>>();
foreach(var url in urlList)
{
var myEndpoint = new EndpointAddress(url);
var myChannelFactory = new ChannelFactory<IMyService>(myBinding, myEndpoint);
factoriesOfTheSameType.Add(myChannelFactory);
}
现在您可以使用'myChannelFactory'来创建客户端并并行调用它们,或者随意使用它。