2009-12-11 32 views

回答

11

你可以在同一个契约和不同地址的clieint配置中有多个端点,没问题。

它们需要用<endpoint>标记上的唯一name=属性分隔。

<client> 
    <endpoint name="tcpEndpoint" 
      address="net.tcp://server:8888/SomeService" 
      binding="netTcpBinding" 
      contract="IYourService" /> 
    <endpoint name="httpEndpoint" 
      address="http://server:8777/SomeService" 
      binding="basicHttpBinding" 
      contract="IYourService" /> 
</client> 

当您创建客户端代理,您需要提供您要使用的端点的名称:

YourClient client = new YourClient("netTcpEndpoint"); 

可以不再仅仅实例化你的客户,并期望它寻找” “端点使用,因为有多个(不幸的是,如果没有指定,就没有办法将其定义为”默认“)。

除此之外 - 我认为不会出现任何问题。

+0

ya。与ex:basicHttpbinding + wsHttpBinding + netTcpBinding同时连接是没有意义的。 – vidalsasoon 2009-12-11 14:04:02

+0

@vidal:不是真的,没有:-)但是你**可以**有一个客户端通过netTcp,另一个客户端实例通过http - 如果你需要(不知道为什么需要这样做 - 但你**可以** ;-) – 2009-12-11 14:05:40

+1

如果您有一个java web客户端和一个.Net胖客户端,可以用作一个真实的例子。 java客户端使用http和.Net客户端使用net.tcp – softveda 2009-12-11 14:29:49

相关问题