Runtime: Problemumgehung für DTC-abhängige Apps in Bezug auf die Portierung auf NetCore 3.0

Erstellt am 5. Dez. 2019  ·  3Kommentare  ·  Quelle: dotnet/runtime

Alle,

Wenn Ihre Netcore-App mehrere Verbindungen in einen Transaktionsbereich einschließt, erhalten Sie einen Laufzeitfehler:
"Diese Plattform unterstützt keine verteilten Transaktionen."

Ich frage mich, was die beste Problemumgehung für Web-Apps ist, die auf netcore3 portiert werden, die DTC verwenden. Ist es umzugestalten, um das UnitOfWork-Muster zu verwenden?

Ich möchte keine Verbindungen in meiner Geschäftsschicht verwalten, womit TransactionScope geholfen hat.

Vielen Dank!

Verwandt:
Offenes Problem: https://github.com/dotnet/corefx/issues/13532
Stack Overflow: https://stackoverflow.com/questions/56328832/transactionscope-throwing-exception-this-platform-does-not-support-distributed-t

area-System.Transactions untriaged

Hilfreichster Kommentar

Wir möchten auch von .NET Framework auf .NET Core portieren und sind auf die Tatsache gestoßen, dass DTC nicht mit TransactionScope unterstützt wird, was sich wie ein Deal Breaker anfühlt, wenn wir in der Lage sind, auf .NET Core zu portieren.

Unsere konkreten Anwendungsfälle sind:

  1. Wir müssen in zwei verschiedene Datenbanktabellen schreiben, die sich auf zwei separaten SQL-Servern befinden, und sicherstellen, dass alles atomar an die Datenbank übergeben wird, was wir heute erfolgreich mit TransactionScope und DTC tun.
  2. Wir müssen mehrere Datenbanktabellen in einer einzigen Transaktion aus unserem Business-Layer-Code einfügen/aktualisieren/löschen, der keine Kenntnis der Datenbank hat. Dies erreichen wir heute erfolgreich, indem wir in unserer Geschäftsschicht einen TransactionScope erstellen, der wiederum mehrere Aufrufe an unsere Datenzugriffsschicht durchführt, die die erforderlichen Datenbankoperationen durchführt.

Da verteilte Transaktionen derzeit in .NET Core nicht unterstützt werden, wie lautet die Empfehlung von Microsoft als Problemumgehung?

Alle 3 Kommentare

Wir möchten auch von .NET Framework auf .NET Core portieren und sind auf die Tatsache gestoßen, dass DTC nicht mit TransactionScope unterstützt wird, was sich wie ein Deal Breaker anfühlt, wenn wir in der Lage sind, auf .NET Core zu portieren.

Unsere konkreten Anwendungsfälle sind:

  1. Wir müssen in zwei verschiedene Datenbanktabellen schreiben, die sich auf zwei separaten SQL-Servern befinden, und sicherstellen, dass alles atomar an die Datenbank übergeben wird, was wir heute erfolgreich mit TransactionScope und DTC tun.
  2. Wir müssen mehrere Datenbanktabellen in einer einzigen Transaktion aus unserem Business-Layer-Code einfügen/aktualisieren/löschen, der keine Kenntnis der Datenbank hat. Dies erreichen wir heute erfolgreich, indem wir in unserer Geschäftsschicht einen TransactionScope erstellen, der wiederum mehrere Aufrufe an unsere Datenzugriffsschicht durchführt, die die erforderlichen Datenbankoperationen durchführt.

Da verteilte Transaktionen derzeit in .NET Core nicht unterstützt werden, wie lautet die Empfehlung von Microsoft als Problemumgehung?

Wir prüfen die Möglichkeit, diese Funktion in Core zu integrieren. Bitte verfolgen Sie weiterhin dotnet/corefx#13532 . Dieses Problem wird in Kürze in dieses Repository verschoben.

Problem wurde nach Dotnet/Runtime #715 verschoben

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen