
[英]svcutil.exe => Cannot obtain Metadata from https://…svc?wsdl
[英]Mismatch in url addresses for “.svc” file and “.svc?wsdl” returned by svcutil.exe
我有一个在负载均衡器后面的IIS中托管的WCF服务,.svc文件位于以下URL https://my-site-domain-Name.xyz.com/test/Service1.svc中 。
我可以成功浏览到上面的网址,并通过
“您已经创建了一项服务。
要测试此服务,您将需要创建一个客户端并使用它来调用该服务。 您可以使用以下语法从命令行使用svcutil.exe工具执行此操作:
svcutil.exe https: //服务器主机名.xyz.com / test / Service1.svc ? wsdl“
注意,我浏览到https://my-site-domain-Name.xyz.com/test/Service1.svc ( 使用域名 ),但svcutil.exe旁边返回的URL指向https:// server-host -name.xyz.com/test/Service1.svc?wsdl ( 使用计算机名 )
这是预期的行为吗? svcutil.exe是否也应指向此
https://my-site-domain-Name.xyz.com/test/Service1.svc?wsdl
为什么svcutil.exe指向服务器计算机名称而不是域名?
我的绑定定义如下
<endpoint address="" binding="customBinding" contract="App1.IService" bindingConfiguration="myBindingConfig" />
是否因为端点地址=“”(空)?
现在尝试浏览到svcutil.exe指向的.svc?wsdl地址会返回以下错误
HTTP404。您正在寻找的资源(或其依赖项之一)可能已被删除,名称更改或暂时不可用。 请查看以下网址,并确保其拼写正确。
在web.config中使用选项useRequestHeadersForMetadataAddress。 例:
<behavior name="TransmiteMensagemTISSBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<useRequestHeadersForMetadataAddress>
<defaultPorts>
<add port="80" scheme="http"/>
</defaultPorts>
</useRequestHeadersForMetadataAddress>
</behavior>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.