我有一个WCF服务,它位于负载均衡器后面的IIS中。 .svc文件位于以下URL https://my-site-domain-Name.xyz.com/test/Service1.svc。
我可以成功浏览到上面的网址并使用
获取页面“您已创建了一项服务。
要测试此服务,您需要创建一个客户端并将其用于 打电话给服务。您可以使用svcutil.exe工具执行此操作 命令行,语法如下:
svcutil.exe https://server-host-name.xyz.com/test/Service1.svc?wsdl“
注意我浏览了https://my-site-domain-Name.xyz.com/test/Service1.svc(使用了域名),但 svcutil.exe 旁边返回的网址指向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地址,返回错误
HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
答案 0 :(得分:0)
在web.config中使用选项useRequestHeadersForMetadataAddress。例如:
<behavior name="TransmiteMensagemTISSBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<useRequestHeadersForMetadataAddress>
<defaultPorts>
<add port="80" scheme="http"/>
</defaultPorts>
</useRequestHeadersForMetadataAddress>
</behavior>