I have configured my WCF services to work with SSL but it works ONLY if the HTTP binding exists in the IIS Web Site. When the HTTP binding not exists and exists only HTTPS b
you need to use mexHTTPSBinding unstead of mexHTTPBinding
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
Since you set httpGetEnabled to true, you need to provide a http address. And HTTP binding is a way to provide address. So if you remove it, you need to find another way to provide address. Following are two ways to provide addresses.
HttpGetUrl :
<serviceMetadata httpGetEnabled="true" httpGetUrl="[your service address]" />
HTTP base address:
<host>
<baseAddresses>
<add baseAddress="[your service address]" />
</baseAddresses>
</host>
Modify your configuration this way:
<behaviors>
<serviceBehaviors>
<behavior> <!-- behavior can have name (must have name in WCF 3.x) -->
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>