WCF TCP和HTTP端点可以具有相同的端口吗?

时间:2010-06-16 06:32:38

标签: wcf silverlight http tcp

我对一个暴露HTTP和TCP接口的WCF服务器感兴趣。它将与Silverlight客户端一起使用,因此我们的想法是HTTP接口将用于安全通信,而TCP将在其余时间使用。

这两个接口是否有可能在其端点中使用相同的端口,例如http://localhost:9000/和net.tcp:// localhost:9000 /?

2 个答案:

答案 0 :(得分:4)

不,这是不可能的。如果启用了TCP端口共享服务,则可以在同一TCP端口上侦听多个服务。 Windows HTTP侦听器还允许您拥有共享公共端口的多个服务(例如,控制台应用程序和IIS都可以在不同URL的端口80上侦听)。但是你不能在同一个端口上使用多个绑定。

但我还是没有看到这样做的优势。我个人会将HTTP端点留在端口80上,当然您的TCP端点被限制在较高端口范围内。我不确定你尝试启用的场景。

答案 1 :(得分:-1)

在TCP端口上只能有一个“侦听器”,因此除非WCF服务器执行某种协议级多路复用(即,如果它读入HTTP标头,请将其发送到HTTP处理程序,否则将其发送到“原始”处理程序),你将不得不使用不同的端口。

当然,最快捷的方法是使用这两个接口和相同的端口配置服务器,并检查日志中的错误。每个人都有可能尝试从他们自己的线程或进程绑定到端口9000,第二个将失败。