Obtenha o TransactionScope para trabalhar com async / await

Estou tentando integrarasync/await em nosso barramento de serviço. Eu implementei umSingleThreadSynchronizationContext com base neste exemplohttp://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx.

E funciona bem, exceto por uma coisa:TransactionScope. Eu aguardo por coisas dentro doTransactionScope e quebrar oTransactionScope.

TransactionScope não parece brincar com oasync/await, certamente porque armazena coisas no segmento usandoThreadStaticAttribute. Eu recebo esta exceção:

"TransactionScope aninhado incorretamente."

Eu tentei salvarTransactionScope dados antes de enfileirar a tarefa e restaurá-lo antes de executá-lo, mas não parece mudar nada. ETransactionScope código é uma bagunça, então é muito difícil entender o que está acontecendo lá.

Existe uma maneira de fazer isso funcionar? Existe alguma alternativa paraTransactionScope?