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