Ich habe Code mit einer System.Transactions.TransactionScope
, dass das Erstellen einer neuen Instanz des Transaktionsbereichs einfach das Programm anhält.neues System.Transactions.TransactionScope() auf Hintergrund Thread stoppt Programm
Es gibt keine Ausnahmen oder Meldungen, das Programm stoppt einfach und Visual Studio kehrt zum Code-Bearbeitungsmodus zurück. Der Prozess ist komplett weg. In der Ereignisanzeige gibt es keine Ausnahmen, Meldungen oder Ereignisse.
Ich habe eine andere Test-App, die TransactionScope ohne Probleme verwendet, also sollte es kein Umweltproblem sein.
Ich weiß nur nicht, wie man das Ausnahmedetail bekommt. Ich habe alle "geworfenen" Checkboxen im Debugging-> Exceptions-Dialog in Visual Studio aktiviert, in der Hoffnung, dass VS automatisch bricht, wenn die Ausnahme ausgelöst wurde, aber es nicht tut.
Kann mir jemand helfen, den Grund für das Beenden des Programms zu bekommen?
EDIT: Ich habe gerade etwas neues gefunden. Das TransactionScope wird in einer Methode erstellt, die in einem Hintergrundthread über ThreadPool.QueueUserWorkItem
ausgeführt wird. Wenn ich die Methode direkt im Hauptanwendungs-Thread aufruft, verschwindet dieses Problem. Meine Frage lautet nun: "Was ist das Problem bei der Verwendung von TransactionScope in einem Threadpool-Thread?". Hinweis Ich bin nicht Starten eines Transaktionsbereichs vor Aufruf des neuen Threads, es ist alles innerhalb einer Methode auf dem Thread Thread ausgeführt wird.
Ja, ich werde das überprüfen. Es sollte nicht DTC verwenden, da es nur einen Transaktionsbereich in einem Thread gleichzeitig gibt und auch TS in einer Test-App funktioniert. Trotzdem könnte ich mich irren, also werde ich nachsehen. Danke für die Erinnerung. –
Nein, das Starten von MSDTC hat leider nicht geholfen. –