2010-06-16 104 views
5

我对一个公开HTTP和TCP接口的WCF服务器感兴趣。它将与Silverlight客户端一起使用,所以我们认为HTTP接口将用于安全通信,而TCP将在其余时间使用。WCF TCP和HTTP端点可以有相同的端口吗?

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

+0

我会感到非常惊讶,特别是如果你真的认为HTTPS的安全。你如何托管HTTP端点 - IIS或其他东西? (WCF是否有内置的HTTP主机?)如果是IIS,那么几乎肯定不是。无论如何,你为什么要这么做? – Rup 2010-06-16 06:40:48

回答

4

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

但我真的没有看到这样做的好处。我个人将HTTP端点留在端口80上,当然你的TCP端点被限制在一个较高的端口范围内。我不确定你想要启用什么场景。

-1

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

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

相关问题