So you have this WCF service with a typical HTTP binding on it. When you try to use it with a client, or when you simply open up the .svc file link in your browser, it throws an error message telling you your MSMQ binding is incorrect. MSMQ!
Contract requires TwoWay (either request-reply or duplex), but Binding ‘NetMsmqBinding’ doesn’t support it or isn’t configured properly to support it.
But it’s a HTTP binding! Of course it’s two-way!
It took me a while to figure out what was happening, but apparently it was all caused due to a typo in the binding configuration for the service in the web.config.
So when you run into this, check your web.config binding configuration for that service. An incorrect class path or class name in the service’s name attribute can be causing this effect. Also check for mismatches between the used class in the binding and the class used in the service’s .svc file.
I’m guessing the “missing binding” is causing WCF or WAS (which is installed) to try and activate the MSMQ protocol as a default oslt. I don’t get it really. So if someone reads this and understands why this misleading error occurs, feel free to enlighten me.