Runtime: Solución alternativa para aplicaciones que dependen de DTC con respecto a la migración a NetCore 3.0

Creado en 5 dic. 2019  ·  3Comentarios  ·  Fuente: dotnet/runtime

Todos,

Si su aplicación netcore envuelve múltiples conexiones en un ámbito de transacciones, obtendrá un error de tiempo de ejecución:
"Esta plataforma no admite transacciones distribuidas".

Me pregunto cuál es la mejor solución para las aplicaciones web que se están transfiriendo a netcore3, que usaba DTC. ¿Es refactorizar para usar el patrón UnitOfWork?

No quiero administrar conexiones en mi capa empresarial, que es con lo que ayudó TransactionScope.

¡Gracias!

Relacionado:
Problema abierto: https://github.com/dotnet/corefx/issues/13532
Desbordamiento de pila: https://stackoverflow.com/questions/56328832/transactionscope-throwing-exception-this-platform-does-not-support-distributed-t

area-System.Transactions untriaged

Comentario más útil

También queremos migrar de .NET Framework a .NET Core y nos hemos encontrado con el hecho de que DTC no es compatible con TransactionScope, lo que se siente como un factor decisivo en términos de que podamos migrar a .NET Core.

Nuestros casos de uso específicos son:

  1. Necesitamos escribir en dos tablas de base de datos diferentes que residen en dos servidores SQL separados y asegurarnos de que todo esté comprometido con la base de datos de forma atómica, lo que hacemos hoy con éxito utilizando TransactionScope y DTC.
  2. Necesitamos INSERTAR / ACTUALIZAR / ELIMINAR varias tablas de base de datos en una sola transacción desde nuestro código de capa empresarial que no tiene conocimiento de la base de datos. Logramos esto con éxito hoy mediante la creación de un TransactionScope en nuestra capa comercial que, a su vez, realiza múltiples llamadas a nuestra capa de acceso a datos, que realiza las operaciones de base de datos necesarias.

Dado que las transacciones distribuidas no se admiten actualmente en .NET Core, ¿cuál es la recomendación de Microsoft como solución alternativa?

Todos 3 comentarios

También queremos migrar de .NET Framework a .NET Core y nos hemos encontrado con el hecho de que DTC no es compatible con TransactionScope, lo que se siente como un factor decisivo en términos de que podamos migrar a .NET Core.

Nuestros casos de uso específicos son:

  1. Necesitamos escribir en dos tablas de base de datos diferentes que residen en dos servidores SQL separados y asegurarnos de que todo esté comprometido con la base de datos de forma atómica, lo que hacemos hoy con éxito utilizando TransactionScope y DTC.
  2. Necesitamos INSERTAR / ACTUALIZAR / ELIMINAR varias tablas de base de datos en una sola transacción desde nuestro código de capa empresarial que no tiene conocimiento de la base de datos. Logramos esto con éxito hoy mediante la creación de un TransactionScope en nuestra capa comercial que, a su vez, realiza múltiples llamadas a nuestra capa de acceso a datos, que realiza las operaciones de base de datos necesarias.

Dado que las transacciones distribuidas no se admiten actualmente en .NET Core, ¿cuál es la recomendación de Microsoft como solución alternativa?

Estamos investigando la viabilidad de llevar esta función a Core, continúe con el seguimiento de dotnet / corefx # 13532, ese problema se trasladará a este repositorio en breve.

Problema movido a dotnet / runtime # 715

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Timovzl picture Timovzl  ·  3Comentarios

sahithreddyk picture sahithreddyk  ·  3Comentarios

btecu picture btecu  ·  3Comentarios

GitAntoinee picture GitAntoinee  ·  3Comentarios

aggieben picture aggieben  ·  3Comentarios