【发布时间】:2011-01-05 06:52:21
【问题描述】:
当 IIS 在 http://localhost:80 上提供页面时,我可以运行一个 Windows 服务托管的 WCF 服务来监听 http://localhost:80/MyService,并且两者都可以工作。
但互联网上的许多地方(如this 和this)说只有一个进程可以同时监听每个端口。
他们错了吗?
【问题讨论】:
标签: wcf iis sockets tcp communication
当 IIS 在 http://localhost:80 上提供页面时,我可以运行一个 Windows 服务托管的 WCF 服务来监听 http://localhost:80/MyService,并且两者都可以工作。
但互联网上的许多地方(如this 和this)说只有一个进程可以同时监听每个端口。
他们错了吗?
【问题讨论】:
标签: wcf iis sockets tcp communication
HTTP.sys makes this possible。来自文章:
...因为 WCF 和 IIS 6.0 都使用内核模式 HTTP 堆栈 (HTTP.sys),IIS 6.0 可以与运行在同一台机器上的其他自托管 WCF 服务共享端口 80...
HTTP.sys 充当端口转发服务,用于 HTTP(端口 80)流量。
【讨论】:
可能是您在 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 服务器 API 将仅绑定到那些 IP 地址列表指定。”
【讨论】: