Как служба WCF может прослушивать тот же порт, что и IIS?

Я мог запустить прослушивание службы WCF с сервисом Windows Service http://localhost:80/MyService, в то время как IIS показывал страницы на http://localhost:80, и оба работают.

Но многие места в Интернете (например, this и this) говорят что только один процесс может прослушивать каждый порт синхронно.

Ошибочны ли они?

Ответы

Ответ 1

Может быть, вы размещаете службу WCF в IIS. Чтобы IIS отправил запрос службе WCF на основе URL-адреса.

Изменить: Возможно также, что службы 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 содержит любые записи, API-интерфейс HTTP-сервера будет привязан только к тем IP-адресам, которые список указывает."

Ответ 2

HTTP.sys делает это возможным. Из статьи:

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

HTTP.sys действует как служба переадресации портов для трафика HTTP (порт 80).