开发者

How can a WCF service listen the same port as IIS?

开发者 https://www.devze.com 2022-12-16 23:02 出处:网络
I could run a Windows Service hosted WCF service listening http://localhost:80/MyService while IIS was serving pages on http://l开发者_如何学运维ocalhost:80 and both works.

I could run a Windows Service hosted WCF service listening http://localhost:80/MyService while IIS was serving pages on http://l开发者_如何学运维ocalhost:80 and both works.

But many places in the internet (like this and this) say that only a single process can listen each port simultaneoulsy.

Are they wrong?


HTTP.sys makes this possible. From the article:

...because WCF and IIS 6.0 both use the kernel-mode HTTP stack (HTTP.sys), IIS 6.0 can share port 80 with other self-hosted WCF services running on the same machine...

HTTP.sys acts as a port-forwarding service, for HTTP (port 80) traffic.


Could it be that you are hosting the WCF service in IIS. So that IIS is sending the request to the WCF service based on the URL.

Edit: It may be also that the WCF services were setup to do port sharing like this: http://msdn.microsoft.com/en-us/library/ms734772.aspx

Edit2: Ok, I reread your edited question, see the links in this answer: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/8993f7c5-1f78-4156-a131-d9b40af10d9a

"The IP Listen List allows WCF services to coexist with applications that use a port for some of the IP addresses of the machine. If the IP Listen List contains any entries, the HTTP Server API will only bind to those IP addresses that the list specifies."

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号