J'essaye d'intégrer async/ awaitdans notre bus de service. J'ai implémenté un SingleThreadSynchronizationContextbasé sur cet exemple http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx .
Et cela fonctionne très bien, sauf pour une chose: TransactionScope. J'attends des trucs à l'intérieur TransactionScopeet ça casse le TransactionScope.
TransactionScopene semble pas jouer bien avec le async/ await, certainement parce qu'il stocke des choses dans le thread en utilisant ThreadStaticAttribute. J'obtiens cette exception:
"TransactionScope imbriqué incorrectement.".
J'ai essayé de sauvegarder les TransactionScopedonnées avant de mettre la tâche en file d'attente et de la restaurer avant de l'exécuter, mais cela ne semble rien changer. Et le TransactionScopecode est un gâchis, il est donc vraiment difficile de comprendre ce qui se passe là-bas.
Y a-t-il un moyen de le faire fonctionner? Y a-t-il une alternative à TransactionScope?
SingleThreadSynchronizationContextpour chaque niveau supérieur TransactionScope.