Obtenga TransactionScope para trabajar con async / await

Estoy tratando de integrarmeasync/await en nuestro servicio de bus. Implementé unSingleThreadSynchronizationContext basado en este ejemplohttp://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx.

Y funciona bien, excepto por una cosa:TransactionScope. Espero cosas dentro de laTransactionScope y romper elTransactionScope.

TransactionScope no parece jugar bien con elasync/await, ciertamente porque almacena cosas en el hilo usandoThreadStaticAttribute. Me sale esta excepción:

"TransactionScope anidado incorrectamente".

Traté de salvarTransactionScope datos antes de poner en cola la tarea y restaurarla antes de ejecutarla, pero parece que no cambia nada. YTransactionScope El código es un desastre, por lo que es muy difícil entender lo que sucede allí.

¿Hay alguna manera de hacerlo funcionar? ¿Hay alguna alternativa aTransactionScope?

Respuestas a la pregunta(3)

Su respuesta a la pregunta