C# 如何让WCF服务通过SSL运行?

C# 如何让WCF服务通过SSL运行?,c#,wcf,web-services,ssl,https,C#,Wcf,Web Services,Ssl,Https,我正在IIS6中运行一个C#web服务,并试图让它通过SSL工作。在执行tcpdump时,它会将初始调用显示为https,但每隔一次调用都会通过http进行。我的SSL证书是自签名的,https在我的web浏览器中运行良好。我正在使用PHP SoapClient作为客户端 有人知道这是什么原因吗 在wsdl中,地址位置设置为http。这应该是https吗?我如何改变它 <wsdl:service name="Service"> <wsdl:port name="BasicHtt

我正在IIS6中运行一个C#web服务,并试图让它通过SSL工作。在执行tcpdump时,它会将初始调用显示为https,但每隔一次调用都会通过http进行。我的SSL证书是自签名的,https在我的web浏览器中运行良好。我正在使用PHP SoapClient作为客户端

有人知道这是什么原因吗

在wsdl中,地址位置设置为http。这应该是https吗?我如何改变它

<wsdl:service name="Service">
<wsdl:port name="BasicHttpBinding_Service" binding="i0:BasicHttpBinding_Service">
<soap:address location="http://example.com/Service.svc"/>
</wsdl:port>
</wsdl:service>

您必须将服务配置为使用HTTPS:

<bindings>
  <basicHttpBinding>
    <binding name="https">
      <security mode="Transport" />
    </binding>
  </basicHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="metadata">
      <serviceMetadata httpsGetEnabled="true" />  
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
  <service name="..." behaviorConfiguration="metadata">
    <endpoint address="..." contract="..." binding="basicHttpBinding"
              bindingConfiguration="https" />
  </service>
</services>


这将允许仅通过HTTPS调用您的服务,因为不存在不安全的端点。WSDL也只能通过HTTPS访问,因为HTTP GET未启用。

差异很大。将来你应该说哪个。“.NETC#Web服务”模棱两可。没有人回答另一个问题:在wsdl中,地址位置设置为http。这应该是https吗?我如何改变它?请让我知道,如果对配置文件的上述更改也将地址位置更改为https?这是必需的吗?@WinFXGuy:WSDL中的地址位置也应该是HTTPS。如果不是,您还有一些额外的配置问题。我遗漏了什么吗?请参阅我的问题: