Ich versuche async/ awaitin unseren Servicebus zu integrieren . Ich habe ein SingleThreadSynchronizationContextauf diesem Beispiel basierendes http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx implementiert .
Und es funktioniert gut, bis auf eine Sache : TransactionScope. Ich warte auf Sachen in der TransactionScopeund es bricht die TransactionScope.
TransactionScopescheint nicht gut mit dem async/ zu spielen await, sicherlich weil es Dinge im Thread mit speichert ThreadStaticAttribute. Ich bekomme diese Ausnahme:
"TransactionScope ist falsch verschachtelt."
Ich habe versucht, TransactionScopeDaten vor dem Einreihen in die Warteschlange zu speichern und vor dem Ausführen wiederherzustellen, aber es scheint nichts zu ändern. Und TransactionScopeCode ist ein Chaos, daher ist es wirklich schwer zu verstehen, was dort vor sich geht.
Gibt es eine Möglichkeit, es zum Laufen zu bringen? Gibt es eine Alternative zu TransactionScope?
SingleThreadSynchronizationContextfür jede oberste Ebene einen eigenen Thread TransactionScope.