The reason it works when you go to the base address (.svc) is that this is an HTTP GET operation to get the metadata for the service. When you call a method on your service contract, you’re doing a POST operation and more than likely you just don’t have this feature enabled. Depending on the .NET version you’re targeting, it will be one of these highlighted in red.
