Что контролирует URL, используемый в расположении мыльного адреса в WSDL? - PullRequest
4 голосов
/ 27 декабря 2011

Я предоставляю службу wcf через https из iis 6. Я убедился, насколько я понимаю, что привязка правильно установлена ​​в iis (да, положительно, что идентификатор сайта равен '1', и он выполнил iisreset) .

когда я запускаю это:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>cscript.exe //NoLogo %sys
temdrive%\inetpub\adminscripts\adsutil.vbs enum W3SVC/1

это в списке:

SecureBindings                  : (LIST) (1 Items)
  ":443:dev.mydomain.com"

Когда я открываю URL для сервиса, я вижу, что он правильно генерирует URL для wsdl:

это:

https://dev.mydomain.com/virtual.directory/servicename.svc

указывает этот URL для svcutil.exe:

https://dev.mydomain.com/virtual.directory/servicename.svc?wsdl

Однако, когда я проверяю сам wsdl, он перестает использовать домен и заменяет его именем машины в этом разделе wsdl xml:

<wsdl:service name="servicename">
<wsdl:port name="BasicHttpBinding_servicename" binding="tns:BasicHttpBinding_servicename">
<soap:address location="http://machinename.inernaldomain/virtual.directory/servicename.svc"/>
</wsdl:port>
</wsdl:service>

Является ли моя проблема проблемой web.config или IIS? Кроме того, почему он меняет адрес мыла на http с https?

1 Ответ

1 голос
/ 28 декабря 2011

Глупая ошибка ... Я назвал свою привязку в веб-конфигурации, но не указал эту привязку к сервису.Все, что мне нужно было сделать, это очистить название привязки.Упрощенная конфигурация для сервисов wcf делает так, что вам не нужно указывать привязку.В моем случае я просто не осознавал, что он не видит мою привязку (без ошибок) и использует значения по умолчанию.http://msdn.microsoft.com/en-us/library/ee530014.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...