WCF 客户端配置 - 基地址?

标签 wcf

我正在将 WCF 客户端连接到一组服务,所有服务都在同一主机上实现相同的契约(Contract)。我希望有一种方法可以组合端点定义以减少配置困惑。我也宁愿不以编程方式进行 - 仅通过配置。现在,我的配置重复了很多次:

<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

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

最佳答案

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

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

关于WCF 客户端配置 - 基地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2016285/

相关文章:

c# - 无法添加服务引用 - 锁定/只读

wcf - WCF 服务可以有多少个 ServiceContract?

c# - 如何回收自托管 WCF 服务

multithreading - 将自定义主体和身份与 WCF 服务一起使用时出现问题

xml - 根据 XML 请求更改 WCF 命名空间

wcf - 突然 WCF session 服务断开时的资源清理

wcf - 如何使用多个 WCF 服务实例强制执行消息队列序列

c# - 使用 WCF 从 Silverlight 传递列表

c# - 如何将 xml 参数发送到 WCF?

Silverlight 4 TreeView MVVM WCF