I have been having fun with WCF. I have been trying to switch off anonymous authentication using WSHttpBinding. Then I found this post. It explains that WSHttpBinding over HTTP requires anonymous authentication to be enabled. I had accidentally set this up in an environment that I did make work.