У меня есть простой веб-сервис WCF. Он размещен на IIS на веб-сайте по умолчанию в нашем производственном домене. (местный адрес: 10.10.20.100)WCF WebService/IIS Ошибка хостинга и конфигурации за брандмауэром
По умолчанию этот веб-сайт по умолчанию был настроен для IP-адресов «Все неназначенные» в порту 80. Однако я заметил, что это вызвало работу службы WCF с ее WSDL с использованием локального имени DNS-сервера. то есть все идентификаторы URI в WSDL были
http://myserver.subdomain.domain.com/.../...
Это не было хорошо, как мне нужно, чтобы разоблачить эту услугу сайтов, которые не имеют знаний о производственной среде внутреннего DNS. И этот конкретный сервер не имеет внешнего DNS-имени. Просто внешний IP-адрес ...
Я имел некоторый успех с изменением параметров в IIS от «All Unassigned» -> «10.10.20.100»
Это вызывает службу генерировать это WSDL с URIs
http://10.10.20.100/.../...
Это нормально для других машин в пределах подобласти и на других субдоменах, но именно здесь я застреваю. Внешний IP-адрес серверов (1.2.3.4) отображается через некоторый перевод NAT/PAT, поэтому он явно не настроен в настройках IP-адресов серверов (то есть он не отображается в соответствии с IP-конфигурацией)
Так что если я изменю ИСИ по умолчанию IP-сайта Адрес от «All Unassigned» -> «1.2.3.4», как я сделал для внутреннего адреса, то служба WCF просто возвращается с ...
Bad Request (Invalid Hostname)
И если я покину IIS, настроенный на внутреннем IP-адресе, и попытайтесь получить доступ к службе через внешний IP-адрес, я получу
No protocol binding matches the given address
'http://1.2.3.4/TestService/Service.svc'. Protocol bindings are
configured at the Site level in IIS or WAS configuration
Есть ли способ сделать IIS/WCF генерировать WSDL URI с внешним IP-адресом, который явно не настроен на сервере?
Кто-нибудь мне поможет, прежде чем я сброшу службы WCF из окна.
Это хороший вопрос. Почему такие вопросы не получают никаких проблем, но такие вопросы, как «Устали от программирования GUI/бизнес-приложений, что делать дальше?» получить 4 за считанные минуты? –
У меня, к сожалению, нет ответа для вас, я могу предложить только возвышение. +1. –
Цените ответы до сих пор ребята. Я собираюсь попробовать предложение Стива сегодня, переопределив ServiceHost, и если это не сработает, я укушу пулю и заставлю sysops получить новое FQDN для нашего API-сервера. –