Как изменить URL-адрес WSDL с внутреннего имени машины на общедоступное?

У меня есть простая служба, которую я развернул в Azure. Он доступен через:

http://xxxxxxxxxxxxxxxxxxxxxxx.cloudapp.net/MyTestService.svc

URL-адрес WSDL использует внутреннее имя машины вместо общедоступного DNS:

svcutil.exe http://rd001520d328923a/MyTestService.svc?wsdl

Очевидно, что WSDL недоступен извне с этим компьютером.

Я знаю несколько вещи, которые можно изменить, если вы запускаете это в IIS или знаете URL-адрес службы. Например, измените конфигурацию , чтобы указать свойство httpGetUrl , но это не сработает, так как мне придется включить абсолютный URL. Используя относительный URL-адрес, он по-прежнему использует внутреннее имя компьютера. Реальная проблема заключается в том, что WSDL включает URL-ссылки с именем машины, что делает его бесполезным.

Есть два нестандартных обходных пути:

  • Было предложено, чтобы я мог захватить WSDL, отредактируйте его, чтобы исправить URL-адреса, а затем загрузите его, чтобы он был доступен с другого URL-адреса.

  • Я обнаружил, что исправление с начала 2010 года было доступно, но должен быть способ лучше.

Как можно решить эту проблему, если вместо имени компьютера будет использоваться общедоступный DNS-сервер?

41
задан p.campbell 19 July 2013 в 18:02
поделиться