What is the difference between BasicHttpsBinding and WsHttpBinding with Transport security?

dqm picture dqm · Feb 14, 2013 · Viewed 37.8k times · Source

As BasicHttpsBinding is new at .net 4.5, I don't seem to be able to find much stuff around differences between the two.

Answer

Philippe picture Philippe · Jul 16, 2013

Indeed the two bindings are very similar. The only real difference is that to require HTTPS, the endpoint needed to be configured with a BasicHttpBinding in which you define the security mode as Transport (or any of the other valid enumerations). With a BasicHttpsBinding on the endpoint, the security mode is defaulted to Transport and the client credential type is set to None.

So here was your configuration before WCF 4.5:

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding name="Service.BasicHttp.BindingConfig">
        <security mode="Transport" />        
      </binding>
    </basicHttpBinding>
  </bindings>
  <services>
    <service name="ServiceImpl">
      <endpoint address="" binding="basicHttpBinding" bindingConfiguration="Service.BasicHttp.BindingConfig"
                name="IService.Http" contract="IService">
      </endpoint>
    </service>
  </services>
</system.serviceModel>

With WCF 4.5, the same configuration can be simplified to:

<system.serviceModel>
  <services>
    <service name="ServiceImpl">
      <endpoint address="" binding="basicHttpsBinding" name="IService.Http" contract="IService">
  </endpoint>
</service>
  </services>
</system.serviceModel>

See What’s new in WCF 4.5? BasicHttpsBinding for additional detail.