0

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

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

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

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

4

1 回答 1

1

我建议以编程方式配置客户端,他是一个示例如何以编程方式将客户端连接到 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”来创建客户端并并行调用它们或使用它做任何您需要的事情。

于 2013-06-21T08:37:07.223 回答