我可以运行一个Windows服务托管的WCF服务,监听http://localhost:80/MyService
,而IIS服务于http://localhost:80
上的页面,两者都可以使用。WCF服务如何与IIS监听相同的端口?
但是互联网上的很多地方(如this和this)都说只有一个进程可以同时监听每个端口。
他们错了吗?
我可以运行一个Windows服务托管的WCF服务,监听http://localhost:80/MyService
,而IIS服务于http://localhost:80
上的页面,两者都可以使用。WCF服务如何与IIS监听相同的端口?
但是互联网上的很多地方(如this和this)都说只有一个进程可以同时监听每个端口。
他们错了吗?
难道你是在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服务器API将只绑定到这些IP地址该列表指定。“
HTTP.sys makes this possible。从文章:
...因为WCF和IIS 6.0都使用内核模式HTTP堆栈(HTTP.sys),IIS 6.0可以与在同一台机器上运行的其他自托管WCF服务共享端口80 ...
HTTP.sys充当HTTP(端口80)通信的端口转发服务。
这就是答案。 HTTP.sys是多个程序可以在Windows下在端口80上侦听的方式。 – jmucchiello 2010-01-14 23:38:09
它也发生在其他端口和协议? http://stackoverflow.com/questions/2085790/can-2-wcf-service-processes-listen-the-same-port – 2010-01-18 12:32:41
所以这就是为什么地狱Windows允许我听8080端口,而Windows媒体服务是HTTP-在同一端口上收听。事情很奇怪。 – sinni800 2011-11-05 23:36:54
不,我将WCF服务作为Windows服务托管,它拥有自己的PID。 – 2010-01-14 22:04:58
编辑该问题以澄清 – 2010-01-14 22:05:51