IIS7 и WCF путаница - PullRequest
       2

IIS7 и WCF путаница

2 голосов
/ 09 декабря 2010

Предположим, у меня запущен веб-сайт (на IIS7), который прослушивает запросы через порт 8000. Теперь этот веб-сайт содержит только статическое содержимое (например, HTML-файлы). Поэтому при просмотре URL-адреса http://localhost:8000, браузер отображает HTML-страницу веб-сайта по умолчанию. Но если я также использую службу хостинга WCF, которая прослушивает запросы по URL http://localhost: 8000 (эта служба WCF не размещается в IIS), браузер вместо этого отображает данные об услуге WCF:

a) Не знаю много о TCP / IP, но, насколько мне известно, только одно приложение одновременно может прослушивать определенный IP-адрес и порт, но здесь и веб-сайт, и служба WCF могут прослушивать один и тот же IP-адрес и номер порта. Как это возможно?

б) Когда я ввожу локальный URL (скажем, http://localhost:8000) в браузер, не запрашивает ли браузер страницу через IIS? Если так, то почему он отображает детали службы WCF, а не страницу по умолчанию на сайте? В конце концов, эта служба WCF даже не размещается в IIS.

Спасибо

1 Ответ

2 голосов
/ 09 декабря 2010

Это правда, что обычно только один процесс может прослушивать определенный сокет.Тем не менее, в Windows была проделана работа по поддержке этого специально для слушателей HTTP, в частности, с введением HTTP.SYS в IIS 6.0.

По сути, именно это ядро ​​фактически слушаетдля запросов HTTP, а затем соединение направляется к одному из нескольких процессов слушателя в пользовательской стране.

Прослушиватели HTTP WCF для самостоятельного размещения также полагаются на HTTP.sys, поэтому они могут совместно использовать порты с IIS (если это необходимо) или для нескольких автономных служб WCF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...