Как служба WCF может прослушивать тот же порт, что и IIS? - PullRequest
15 голосов
/ 15 января 2010

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

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

Они не правы?

Ответы [ 2 ]

32 голосов
/ 15 января 2010

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

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

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

0 голосов
/ 15 января 2010

Может быть, вы размещаете службу WCF в IIS. Так что IIS отправляет запрос в службу WCF на основе URL.

Edit: Также может быть, что службы 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-адресами, список указывает. "

...