Just for a change, I was asked to help out on a non-Identity project.
There was a legacy host that only understood SOAP and a modern back-end that only supported REST web API.
So we need a bridge between them and I had to remember everything I had ever forgotten about WCF.
I needed my WCF method to call:
string response = await my_api.CallREST(parameter);
The problem is that the compiler expects the method to be decorated with async.
Turns out you can.
My method looks like:
public async Task<validateresponse> ValidateParameter (parameter)
... and similarly for the interface.
And it works!
The word "async" doesn't appear anywhere is the WSDL. It appears to be completely ignored.