如何对同一类型的多个Web服务使用一个绑定?

时间:2013-06-21 07:46:50

标签: c# wcf web-services binding

在WCF Web服务部署中,我需要一个Web服务来连接到同一类型的多个服务。这些服务以动态方式添加到部署中,其数量应该是灵活的。 显然,通常的方法“创建绑定”在这种情况下不是解决方案,因为我需要为我最终可能使用的每个服务创建绑定。

建议的方法是什么? 起初我正在考虑在多个服务之一中创建绑定(在编译之前)。添加的新服务只是传达他们的端点,在发送它们之前我会更改服务的端点名称。如果我想并行发送这些服务,这似乎非常错误和坏。

是否有正确的方法来处理相同类型的服务而不重复绑定?

我不习惯为WCF设置更复杂的场景,如果我没有解释好这个问题,那么帮助改写这个问题并为我的问题找到新的搜索词可能会很棒。

1 个答案:

答案 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'来创建客户端并并行调用它们,或者随意使用它。