如何公开WCF服务,以便一个使用wsHttp绑定的客户端和另一个使用netTcp绑定的客户端都可以使用该服务?
答案 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:
答案 1 :(得分:0)
简而言之,您只需通过配置即可完成!
Have you seen this tutorial? Do check this out。
这是一个优秀的教程,其中包含使用Microsoft Service Configuration Editor配置具有多个端点的样本服务的整个基本过程的屏幕图像。