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

15

当IIS提供页面服务在http://localhost:80时,我可以运行一个 Windows Service 托管的 WCF 服务并监听http://localhost:80/MyService,两者都能正常工作。

但是许多互联网上的地方(例如这里这里)声称每个端口只能同时由一个进程监听。

他们说的对吗?

2个回答

32

HTTP.sys使这成为可能,根据这篇文章:

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

HTTP.sys作为一个端口转发服务,用于HTTP(端口80)流量。


这是答案。HTTP.sys 是多个程序在 Windows 下监听端口 80 的方式。 - jmucchiello
2
这也会发生在其他端口和协议上吗?https://dev59.com/akvSa4cB1Zd3GeqPeGQR - Jader Dias
2
所以这就是为什么该死的Windows允许我在Windows Media服务正在使用同一端口进行HTTP监听时,仍然可以监听8080端口。事情很奇怪。 - sinni800

0

你是否在IIS中托管了WCF服务,因此IIS根据URL将请求发送到WCF服务。

编辑: 也可能是WCF服务设置为像这样进行端口共享: http://msdn.microsoft.com/en-us/library/ms734772.aspx

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

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


不是的,我将WCF服务作为Windows服务进行托管,它有自己的PID。 - Jader Dias
已编辑问题以澄清。 - Jader Dias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接