如何为相同类型的多个web服务使用一个绑定

本文关键字:绑定 一个 服务 web 同类型 | 更新日期: 2023-09-27 18:19:15

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

推荐的方法是什么?起初,我想创建一个绑定(在编译之前)到多个服务中的一个。添加的新服务将只通信它们的端点,在向它们发送内容之前,我将更改服务的端点名称。如果我想与这些服务并行发送,这似乎是非常错误和糟糕的。

是否有一种适当的方法来处理相同类型的服务而不重复绑定?

我不习惯使用更复杂的WCF场景,如果我没有很好地解释这个问题,如果有人能帮助我重新表述这个问题并为我的问题找到新的搜索词,那就太好了。

如何为相同类型的多个web服务使用一个绑定

我建议以编程方式配置客户端,这是一个如何以编程方式将客户端连接到WCF服务的示例?端点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'来创建客户端,并并行调用它们,或者做任何你需要的事情。