如何一次为多个WCF绑定配置代理地址?

时间:2015-06-09 10:11:41

标签: wcf wcf-binding

要在WCF中配置代理设置,我可以这样解决:

<binding name="bindingName" proxyAddress="http://proxySomething">

但是,这需要复制到您拥有的每个绑定中。我想知道是否有办法在一个地方为所有绑定设置此项。类似的东西:

<proxy address="http://proxySomething" forAllBindings="true"/>

有这样的设定吗?我试过搜索,但找不到它。

更新1:还应注意,我有多种类型的绑定(basicHttpBindingcustomBindingwsHttpBindingwebHttpBinding)以及一些类型的几个命名绑定。

2 个答案:

答案 0 :(得分:2)

您可以使用网络设置中的defaultProxy元素:

<configuration>
  <system.net>
    <defaultProxy>
      <proxy proxyaddress="http://someproxy:8080"/>
    </defaultProxy>
  </system.net>
</configuration>

信息支持blog post中的更多详细信息。

请注意,这也是全局代理和it used by WebRequest实例。

答案 1 :(得分:1)

如果您使用的是.net 4.5,则可以使用简化的配置样式WCF bindings。这允许您配置特定的绑定类型,然后当您的客户端或服务使用该特定绑定类型(比如basicHttpBinding)时,将使用修改后的配置。

修改deafult绑定,只是没有具体的名称。

所以

<bindings> <basicHttpBinding> <binding messageEncoding="Mtom" /> </<basicHttpBinding> </bindings>

现在 如果使用basicHttpBinding创建服务,它将使用Mtom而不是Text。