We have a webservice that works fine on HTTPS but shows the HTTP 415 error on HTTPS. So, under HTTP, we can make a POST request sending and receiving JSON without issue. When we try the same under HTTPS we got the error that the service is expecting text/xml insteas of application/json. Any suggestion on where to look?
The server is using a self signed certificate if that matters.
Updated with bindings and behaviors
<!-- Wcf Services Setting --> <system.serviceModel> <bindings> <wsHttpBinding> <binding name="WsHttpBinding" maxReceivedMessageSize="1048576"> <readerQuotas maxArrayLength="1048576" /> </binding> <binding name="SecureWsHttpBinding" maxReceivedMessageSize="1048576"> <readerQuotas maxArrayLength="1048576" /> <security mode="Transport"> <transport clientCredentialType="None" /> </security> </binding> </wsHttpBinding> <webHttpBinding> <binding name="WebHttpBinding" maxReceivedMessageSize="1048576"> <readerQuotas maxArrayLength="1048576" /> </binding> <binding name="SecureWebHttpBinding" maxReceivedMessageSize="1048576"> <readerQuotas maxArrayLength="1048576" /> <security mode="Transport"> <transport clientCredentialType="None" /> </security> </binding> <binding name="webBinding"> <security mode="Transport"> </security> </binding> </webHttpBinding> <basicHttpBinding> <binding name="BasicHttpBinding_IMainService" maxReceivedMessageSize="1048576"></binding> <binding name="BasicHttpBinding" maxReceivedMessageSize="1048576"> <readerQuotas maxArrayLength="1048576" /> <security mode="None"> <transport clientCredentialType="None" /> </security> </binding> <binding name="SecureBasicHttpBinding" maxReceivedMessageSize="1048576"> <readerQuotas maxArrayLength="1048576" /> <security mode="Transport"> <transport clientCredentialType="None" /> </security> </binding> </basicHttpBinding> </bindings> <behaviors> <endpointBehaviors> <behavior name="AjaxBehavior"> <webHttp DefaultOutgoingResponseFormat="json" /> </behavior> </endpointBehaviors> <serviceBehaviors> <behavior name="DvaMfs.WcfService"> <useRequestHeadersForMetadataAddress> <defaultPorts> <add scheme="https" port="443" /> </defaultPorts> </useRequestHeadersForMetadataAddress> <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors>
services look like this
<service name="DvaMfs.WcfService.ProductService" behaviorConfiguration="DvaMfs.WcfService"> <endpoint name="ProductServiceEndPoint" address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding" contract="DvaMfs.WcfService.IProductService" /> <endpoint name="ProductServiceAjaxEndPoint" address="ajax" binding="webHttpBinding" bindingConfiguration="WebHttpBinding" behaviorConfiguration="AjaxBehavior" contract="DvaMfs.WcfService.IProductService" /> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> <endpoint name="ProductServiceSecureEndPoint" address="ProductServiceSecure" binding="basicHttpBinding" bindingConfiguration="SecureBasicHttpBinding" contract="DvaMfs.WcfService.IProductService" /> <endpoint name="ProductServiceAjaxSecureEndPoint" address="ProductServiceSecureajax" binding="webHttpBinding" bindingConfiguration="SecureWebHttpBinding" behaviorConfiguration="AjaxBehavior" contract="DvaMfs.WcfService.IProductService" /> </service>
Update 2 This is one of the endpoints failing:
<endpoint name="DataServiceSecureEndPoint" address="" binding="basicHttpBinding" bindingConfiguration="SecureBasicHttpBinding" contract="DvaMfs.WcfService.IDataService" />