在启用SSL的情况下将WCF服务移动到IIS6

时间:2016-10-03 20:14:15

标签: wcf iis-6

我在没有启用SSL的情况下在服务器上运行我的WCF服务,现在我将其移动到启用了SSL的服务并且我收到以下错误:

  

无法使用绑定BasicHttpBinding找到与端点的scheme http匹配的基址。注册的基地址方案是[https]。

以下是我的设置:

<bindings>
  <basicHttpBinding>
    <binding name="basicHTTP">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows">
        </transport>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="basicBehavior" name="ProjectName.MyService">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHTTP" contract="ProjectName.IMyService"/>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="basicBehavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

您需要为basicHttps定义绑定。这是一个非常简单的设置,适用于SSL:

<system.serviceModel>
    <bindings>
      <basicHttpsBinding>
        <binding name="BasicHttpBinding_IMyService" />
      </basicHttpsBinding>
    </bindings>

    <client>
      <endpoint
        name="BasicHttpBinding_IMyService"
        address="https://MyURL/MyService.svc/soap/"
        binding="basicHttpsBinding"
        bindingConfiguration="BasicHttpBinding_IMyService"
        contract="ClientServiceReference.IMyService" />
    </client>

  </system.serviceModel>

注意: 端点需要定义,其网址为 https

此外,请确保在生产环境中,您没有将异常详细信息发送回调用方(这将被视为系统中的安全漏洞,因为异常可能会向黑客泄露太多信息)。您必须更改此行:

<serviceDebug includeExceptionDetailInFaults="false"/>

答案 1 :(得分:0)

通过将安全模式指定为Transport并使用webHttpBinding

来解决此问题