WCF服务如何监听与IIS相同的端口?

Jad*_*ias 15 sockets iis wcf tcp communication

我可以运行Windows服务托管的WCF服务,http://localhost:80/MyService而IIS正在为页面提供服务http://localhost:80并且两者都有效.

但是互联网上的许多地方(像这样这个)说只有一个进程可以同时监听每个端口.

他们错了吗?

Che*_*eso 32

HTTP.sys使这成为可能.来自文章:

...因为WCF和IIS 6.0都使用内核模式HTTP堆栈(HTTP.sys),IIS 6.0可以与在同一台机器上运行的其他自托管WCF服务共享端口80 ...

HTTP.sys充当HTTP(端口80)流量的端口转发服务.

  • 其他端口和协议也会发生这种情况吗?http://stackoverflow.com/questions/2085790/can-2-wcf-service-processes-listen-the-same-port (2认同)
  • 因此,这就是为什么在Windows Media Service在同一端口上进行HTTP侦听时,Windows允许我监听端口8080的原因。事情很奇怪。 (2认同)

Aar*_*nLS 0

可能是您在 IIS 中托管 WCF 服务。这样 IIS 将根据 URL 向 WCF 服务发送请求。

编辑:WCF 服务也可能被设置为执行端口共享,如下所示: http ://msdn.microsoft.com/en-us/library/ms734772.aspx

Edit2:好的,我重读了您编辑的问题,请参阅此答案中的链接: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/8993f7c5-1f78-4156-a131-d9b40af10d9a

“IP 侦听列表允许 WCF 服务与使用计算机的某些 IP 地址的端口的应用程序共存。如果 IP 侦听列表包含任何条目,则 HTTP Server API 将仅绑定到列表指定的那些 IP 地址”。