Ok, just to clarify - I have tried every site, every article and forum so far for this problem. I have implemented everything mentioned everywhere, it works in the emulator as well.
Basically I have this worker role which exposes WCF services with basichttpbinding, custombinding and wshttpbinding. In the cloud, the service starts without errors, I can even access the WCF URL via HTTP from the browser from within the azure VM.
But, when I try to access the same URL from http://x.cloudapp.net:8732/xyz/abc.svc - it gives me 405 errors. I can see the input endpoints in the properties - within the azure control panel.
Just to note: my colleague got this working by creating default end points and writing the usual code to start the service host. I need to get this working using my WCF configuration, and not the default values which come with a new binding.