WCF Express Interop Bindings
Something that might come as a surprise for somebody who worked with WCF (even for years) but never had to interoperate with another platform than .NET is how much WCF isn’t interoperable out-of-the-box.
It isn’t WCF fault really. It’s SOAP’s fault and its lousy specs. Well… not so much lousy as big, complicated and extremely flexible. The result is that each vendor implements a subset of those or at least expose a subset as the default configuration for web service. So although you’re using a platform that is interoperable, the web services you are exposing are not.
Of course, if you’re exposing your web service using basic http binding with no security, no reliability, no session and plain old XML (even for big binary payload), you are probably interoperable (and pretty unsecure). If you use a fancier bindings, chances are you won’t be able to interoperate with another platform.
But rest assure, instead of mocking around binding configuration until you can talk to this Java server over there, Microsoft gives us the WCF Express Interop Bindings on CodePlex. Take a look at this picture (from the site) and reflect on how “Universal” SOAP is when you have platform technology names on both side of the diagram!