WCF服务,具有两种不同客户端的绑定类型

时间:2010-10-14 03:24:04

标签: .net wcf wcf-binding

如何公开WCF服务,以便一个使用wsHttp绑定的客户端和另一个使用netTcp绑定的客户端都可以使用该服务?

2 个答案:

答案 0 :(得分:12)

这是一个配置事项 - 当您定义服务时,您只需要定义两个端点 - 一个用于wsHttpBinding,另一个用于netTcpBinding。就这么简单!

<system.serviceModel>
   <services>
      <service name="YourNamespace.MyService">
         <endpoint 
             address="ws" 
             binding="wsHttpBinding" 
             contract="YourNamespace.IMyService" />
         <endpoint 
             address="net.tcp://localhost:8787/MyService" 
             binding="netTcpBinding"
             contract="YourNamespace.IMyService" />
       <host>
           <baseAddresses>
                <add baseAddress="http://localhost:8282/" />
           </baseAddresses>
       </host>
     </service>
  </services>
</system.serviceModel>

现在您的服务暴露了两个端点:

  • 使用wsHttpBinding
  • http://localhost:8282/ws
  • 使用netTcpBinding
  • tcp://localhost:8787/MyService

对于相同的服务合同,两个端点都针对相同的服务,例如提供相同的功能和服务方法。

WCF中的每个服务端点必须定义WCF的ABC:

  • [A]地址 - 在哪里可以到达/呼叫服务?
  • [B] inding - 如何调用服务(协议,设置,安全性等)?
  • [C] ontract - 该地址提供的服务是什么,暴露了哪些方法?

答案 1 :(得分:0)

简而言之,您只需通过配置即可完成!

Have you seen this tutorial? Do check this out

这是一个优秀的教程,其中包含使用Microsoft Service Configuration Editor配置具有多个端点的样本服务的整个基本过程的屏幕图像。