使用WCF(https)时WSDL超链接中的URL错误

Hin*_*nek 6 .net https wcf mex

我使用HTTPS运行我的WCF服务,它显示了Infopage,但下面的URL"要测试此服务,...使用以下语法:"是:

svcutil.exe https://servername.group.service.com/MyService.svc?wsdl (服务器的完整地址)

而不是正确的URL https://my.service.com/MyService.svc?wsdl(指定的hostheader),我如何让它显示正确的URL(<URL of the Service> + ?wsdl)?

<services>
  <service name="MyService" behaviorConfiguration="MyServer.MyServiceBehavior">
    <endpoint binding="basicHttpBinding" bindingConfiguration="basicHttpBigStrings" contract="IMyService">
    </endpoint>
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="MyService.MyServiceBehavior">
      <serviceCredentials>
        <serviceCertificate findValue="my.service.com" x509FindType="FindBySubjectName"/>
      </serviceCredentials>
      <serviceMetadata httpsGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
    <binding name="basicHttpBigStrings">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
      <readerQuotas maxStringContentLength="1048576" />
    </binding>
  </basicHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)

我已经试图改变<serviceMetadata httpsGetEnabled="true"/><serviceMetadata httpsGetEnabled="true" httpsGetUrl="https://my.service.com/MyService.svc"/>,但它只是说:"一个注册已经存在URI https://my.service.com/MyService.svc "

ami*_*mit 4

您指定已设置主机标头。是设置为 SSL 还是只是 Http。请记住,IIS UI 没有用于设置 SSL 主机标头的字段。对于更高版本的 IIS,您需要使用管理脚本 (IIS 6.0) 或 netsh.exe。