2015-10-15 29 views
0

我有一个托管在负载均衡器后面的IIS中的WCF服务& .svc文件位于以下URL https://my-site-domain-Name.xyz.com/test/Service1.svcsvcutil.exe返回的“.svc”文件和“.svc?wsdl”的url地址不匹配

我可以成功地浏览到上述网址,并用

获取页面“你已经创建了一个服务。

为了测试这项服务,你需要创建一个客户端,并用它来 呼叫服务可以使用从以下语法 命令行工具的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" /> 

定义如下莫非因为端点地址= “”(空)?

尝试,现在浏览到的.svc?WSDL地址指向以下错误svcutil.exe的回报

HTTP 404。您正在寻找(或它的一个依赖)的资源可能已删除,更名或暂时不可用。请检查以下网址并确保它拼写正确。

回答

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>