FYI. Я отправил правильный ответ, поскольку я только понял это.
я есть простой сервис, который я развернул в Azure. Это доступно через:
http://xxxxxxxxxxxxxxxxxxxxxxx.cloudapp.net/MyTestService.svc
URL-адрес WSDL использует имя внутреннего компьютера вместо общедоступного DNS:
svcutil.exe http://rd001520d328923a/MyTestService.svc?wsdl
Очевидно, что WSDL не доступен извне машины с этим.
Мне известно о нескольких вещах, которые можно изменить, если вы запускаете это в IIS или знаете URL-адрес службы. Например, изменение<serviceMetadata>
конфиг, чтобы указатьhttpGetUrl
свойство, но это не будет работать, так как я должен был бы включить абсолютный URL. Используя относительный URL, он по-прежнему использует внутреннее имя компьютера. Реальная проблема заключается в том, что WSDL включает URL-ссылки с именем компьютера, поэтому делает его бесполезным.
Есть два некачественных обходных пути:
Было предложено, чтобы я мог получить WSDL, отредактировать его, чтобы исправить URL-адреса, а затем загрузить его, чтобы он был доступен с другого URL-адреса.
Я обнаружил, что исправление с начала 2010 года было доступно, но должен быть лучший способ.
Как можно решить эту проблему, чтобы использовать общедоступный DNS вместо имени компьютера?