See the question and my original answer on StackOverflow

Many things could cause this. I suggest you first enable WCF Tracing, it's usually very helpful as it gives you the server side output of what's really going on. Here is a link that should help: How to enable WCF tracing

EDIT: One little thing to note with WCF: unlike auto generated ole' ASMX web service it does not allow you to browse to the base address with a standard browser. You can browse to the Metadata address (the mex one), but not to the root. This is just by design (the HTTP method is not supported I believe).