¿Cómo agregar soporte asíncrono a un servicio WCF de .NET 4.5 para que no interrumpa a los clientes existentes?

Tengo un servicio WCF existente con un punto final SOAP, usando .NET 4.5. La mayor parte del código de cliente existente está utilizando elChannelFactory<T> enfoque de poder.

Me gustaría cambiar el servicio para apoyar elasync / await modelo para varias operaciones de base de datos y E / S del lado del servidor.

El problema que tengo es que agregar elasync la palabra clave para las llamadas al método WCF requiere cambiar sus firmas de interfaz aTask<T>. Eso, a su vez, parece estar requiriendo cambios en el código del cliente.

Mientras se mantiene el código de servicio asíncrono "completamente inactivo", ¿hay alguna forma directa de mantener la API expuesta sin cambios?

Respuestas a la pregunta(1)

Su respuesta a la pregunta