Как я могу разместить 2 самостоятельных службы WCF, используя разные имена хостов на одном компьютере (используя заголовок хоста)

Я пытаюсь самостоятельно разместить две службы WCF со следующими соглашениями об URL-адресах:

https://service.servicehost.com/service

https://service-branch.servicehost.com/service

И я получаю эту ошибку:

Служба не может быть запущена. System.ServiceModel.AddressAlreadyInUseException: HTTP не удалось зарегистрировать URL-адрес https://+:443/service/. Другое приложение уже зарегистрировало этот URL-адрес в HTTP.SYS. --->

Я понимаю ошибку и знаю, как ее обойти, изменив суффикс службы, но похоже, что собственный хост WCF не поддерживает функцию заголовка хоста, как это делает IIS (поскольку я вижу знак +).

Есть ли способ, которым я могу это сделать?


person Amir Popovich    schedule 15.02.2017    source источник


Ответы (1)


Я не уверен, что это можно сделать для SelfHost/Http. С Net.Tcp вам пришлось бы использовать PortSharing, чтобы это произошло.

В худшем случае вы потенциально можете создать службу маршрутизации, который направляет ваши запросы в нужную службу, где каждый из них прослушивает другой порт.

Кроме того, ознакомьтесь с документацией для Перечисление HostNameComparisonMode. Документация для basicHttpBinding покажет вам как это использовать.

person Jorge Del Conde    schedule 15.02.2017
comment
Добавление hostNameComparisonMode="Exact" в конфигурацию привязок, похоже, решает эту проблему. Спасибо. - person Amir Popovich; 16.02.2017