WCF客户端配置 - 基地址?

Jam*_*ack 5 wcf

我正在将一个WCF客户端连接到一组服务,这些服务都实现相同的合同,并且都在同一个主机上.我希望有一种方法可以结合端点定义来减少配置混乱.我也不愿意以编程方式来做 - 只是通过配置.现在,我的配置重复多次:

<endpoint address="http://hostname/ServiceA.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_MyBinding"
         contract="ServiceReference.ISearchService" name="ServiceA">
</endpoint>

<endpoint address="http://hostname/ServiceB.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_MyBinding"
         contract="ServiceReference.ISearchService" name="ServiceB">
</endpoint>

// continued for ServiceC, ServiceD, etc
Run Code Online (Sandbox Code Playgroud)

对于服务器配置,有一些"baseAddressPrefixFilters"的概念可以用于此目的 - 客户端配置有什么用途吗?

mar*_*c_s 3

WCF 中有基地址的概念 - 不幸的是,它仅在您自行托管时才有效,例如在控制台应用程序或 NT 服务中托管您的服务。但是,这只适用于服务器端 - 客户端上没有类似的东西。在客户端,您始终必须定义端点应连接到的完整、完整的服务地址。

如果您托管在 IIS 中,则您的服务地址由服务器名称、虚拟目录(及其下可能的子目录)以及用于在 IIS 中托管服务的 *.svc 文件的名称确定。不幸的是,这是一个固定的系统约定,您无法影响它(.NET 4 将为此提供一些补救措施)。

  • 现在有关于如何使用 .Net 4 执行此操作的消息吗?我正在努力寻找解决方案。 (2认同)