I innocently added a Silverlight-enable WCF Service to my Azure application and then innocently generated a Service Reference for my Silverlight client. Everything worked fine on my machine; nothing worked once I uploaded it to Azure. After going down a lot of wrong turns in figuring out what was wrong, I was able to use Fiddler to discover the following response from the service:
The message with To 'http://.../Service.svc' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree.
This led me to the following hot fix: http://code.msdn.microsoft.com/KB971842. After installing the hot fix, in order to get things working, I had to both add the following to my serviceBehaviors behavior:
<useRequestHeadersForMetadataAddress>
<defaultPorts>
<add scheme="http" port="81" />
<add scheme="https" port="444" />
</defaultPorts>
</useRequestHeadersForMetadataAddress>
And then I also had to add the following attribute to my service:
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
I then regenerated my proxy and, hooray, everything worked. More on this and other issues when using WCF with Windows Azure is explained here: http://code.msdn.microsoft.com/wcfazure/Wiki/View.aspx?title=KnownIssues