我已经尝试了很多关于这个的技巧,但我无法让它发挥作用。在客户端我有:
<configuration>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="[binding_name]">
                <security mode="Transport" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="/[service_name].svc"
                binding="basicHttpBinding"
                bindingConfiguration="[binding_name]"
                contract="[contract_name]"
                name="[endpoint_name]" />
    </client>
</system.serviceModel>
</configuration>
在服务器上:
...<service name="[service_name]">
    <endpoint address=""
              binding="basicHttpBinding"
              bindingConfiguration="[binding_name]"
              contract="[contract_name]"
              name="[endpoint_name]"/>
    <endpoint contract="IMetadataExchange"
              binding="mexHttpsBinding"
              address="mex" />
  </service><behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
</behaviors><bindings>
  <basicHttpBinding>
    <binding name="[binding_name]">
      <security mode="Transport">
        <transport clientCredentialType ="None"/>
      </security>
    </binding>
  </basicHttpBinding>...
一个潜在的线索是,当我导航到 https://[server_name]/[service_name].svc?wsdl 时,我看到位置正确
<wsdl:import namespace="http://[namespace]" location="https://[server_name]/[service_name].svc?wsdl=wsdl0"/> 
但不正确
<wsdl:port name="[binding_name]" binding="tns:[binding_name]">
<soap:address location="http://[machine_name]/[service_name].svc"/>
</wsdl:port>
注意 location=" http ://[ machine_name ]/[service_name].svc" 这是预期的吗?如果不是,可能是什么问题?
我还确保服务器配置中的 [service_name] 是服务实现的 FQN。在我在服务器上启用 SSL 并将安全模式更改为传输等之前,一切都按预期工作。