+2  A: 

Answer for me was the following (provided by Lazarus in the comments, but hasn't come back to post as an answer):

  1. Fired up Internet Information Services (IIS) Manager.
  2. Opened up the Sites folder and selected the Site in question.
  3. Right clicked it, then selected Manage Web Site and then Advanced Settings...
  4. On the resulting popup, I entered http in the Enabled Protocols row.
  5. Closed the popup and restarted the Site, and that was it. Fixed!
Pauk
A: 

I found that it is almost always a problem with the way the endpoint, bindings, and/or the behavior is configured. For the most part, if your web site in IIS does not have an HTTP binding, then make sure to explicitly set the httpGet httpGetEnabled='false' in the configuration/system.serviceModel/behaviors/serviceBehaviors/behavior/serviceMetadata configuration respective to your WCF service. The path above ofcourse is refering to your web or app.config file. In addition, if you have an endpoint that has 'http://' in the address, remove it. WCF pays attention to these things and will throw the same ambiguous error message. There is a whole maze of mis-configurations that produce the same error messages. I hate that about WCF. I which it was more specific like: "Hey dumm as#! You have an HTTP in one of your endpoint addresses but IIS has no HTTP binding!" ;P Atleast this way I won't be chasing my tail.

Likewise, I never use the mex endpoints as they are more trouble then they are worth. Instead, use the httpsHelpPageUrl and httpsHelpPageEnabled attributes in the configuration/system.serviceModel/behaviors/serviceBehaviors/behavior/serviceDebug config element (assuming your using HTTPS).

Rashad Rivera