管理同一服务的多个WCF端点

时间:2010-04-13 16:42:23

标签: c# .net wcf

我正在构建一个使用WCF调用多个外部端点的应用程序。除URI外,所有远程端点都相同。我想将它们视为一个池:通过配置添加和删除端点,并让应用程序了解该做什么。

我最初的计划是在app.config中定义一个端点,然后迭代我的端点列表并动态更新client.Endpoint.Address以指向正确的位置。不幸的是,该属性是只读的,导致该计划不可行。

我有点难过。关于如何实现这一目标的任何建议?

3 个答案:

答案 0 :(得分:1)

How to: Create a Service Endpoint in Code向您展示了如何在代码而不是配置中管理服务端点。

答案 1 :(得分:0)

您是否尝试过传递给客户端构造函数的单独名称?

          <endpoint address="http://localhost:18000/MyService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
                contract="MyServiceReference.IMyService" name="BasicHttpBinding_IMyService" />
          <endpoint address="http://localhost:18001/MyService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
                contract="MyServiceReference.IMyService" name="MyService_Secondary" />
          <endpoint address="http://localhost:18002/MyService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
                contract="MyServiceReference.IMyService" name="MyService_Tertiary" />

答案 2 :(得分:0)

将终点地址存储在数据库表中,并使用Jason的建议在代码中创建端点。当新端点出现时,您只需向表中添加另一行并强制服务重新查询端点表。

如何:在代码中创建服务端点 http://msdn.microsoft.com/en-us/library/ms731080.aspx