【发布时间】:2011-04-25 04:43:48
【问题描述】:
如何公开 WCF 服务,以便一个使用 wsHttp 绑定的客户端和另一个使用 netTcp 绑定的客户端都可以使用该服务?
【问题讨论】:
标签: .net wcf wcf-binding
如何公开 WCF 服务,以便一个使用 wsHttp 绑定的客户端和另一个使用 netTcp 绑定的客户端都可以使用该服务?
【问题讨论】:
标签: .net wcf wcf-binding
简单来说就是通过配置就可以搞定!
Have you seen this tutorial? Do check this out。
这是一个出色的教程,其中包含使用Microsoft Service Configuration Editor 配置具有多个端点的示例服务的整个基本过程的屏幕图像。
【讨论】:
这都是配置的事情——当你定义你的服务时,你只需定义两个端点——一个用于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>
现在您的服务公开了两个端点:
wsHttpBindinghttp://localhost:8282/ws
tcp://localhost:8787/MyService 使用netTcpBinding
两个端点都用于相同的服务,相同的服务合同,例如提供相同的功能和服务方法。
WCF 中的每个服务端点都必须定义 WCF 的 ABC:
【讨论】: