什么控制WSDL的soap地址位置中使用的url?

时间:2011-12-27 16:43:56

标签: wcf iis-6

我在iis 6上通过https公开了一个wcf服务。据我所知,我已经验证了绑定是在iis中正确设置的(是的,肯定的是网站ID是'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"

当我打开服务的网址时,我可以看到它正确生成了wsdl的网址:

这样:

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

为svcutil.exe指定此URL:

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问题?另外,为什么它将soap地址从https改为http?

1 个答案:

答案 0 :(得分:1)

愚蠢的错误...我在web配置中命名了我的绑定,但没有指定绑定到服务。我所要做的就是明确绑定的名称。 wcf服务的简化配置使您无需指定绑定。在我的情况下,我只是没有意识到它没有看到我的绑定(没有错误),并使用默认值。 http://msdn.microsoft.com/en-us/library/ee530014.aspx