Runtime: 在移植到 NetCore 3.0 方面依赖于 DTC 的应用程序的解决方法

创建于 2019-12-05  ·  3评论  ·  资料来源: dotnet/runtime

全部,

如果您的 netcore 应用程序将多个连接包装在一个事务范围内,您将收到运行时错误:
“这个平台不支持分布式事务。”

我想知道移植到使用 DTC 的 netcore3 的网络应用程序的最佳解决方法是什么。 是否要重构以使用 UnitOfWork 模式?

我不想在我的业务层管理连接,这是 TransactionScope 的帮助。

谢谢!

有关的:
公开问题: https : //github.com/dotnet/corefx/issues/13532
堆栈溢出: https : //stackoverflow.com/questions/56328832/transactionscope-throwing-exception-this-platform-does-not-support-distributed-t

area-System.Transactions untriaged

最有用的评论

我们还想从 .NET Framework 移植到 .NET Core,但遇到了一个事实,即 TransactionScope 不支持 DTC,就我们能够移植到 .NET Core 而言,这感觉就像一个交易破坏者。

我们的具体用例是:

  1. 我们需要写入驻留在两个独立 SQL Server 上的两个不同数据库表,并确保它们都以原子方式提交给数据库,我们今天使用 TransactionScope 和 DTC 成功地做到了这一点。
  2. 我们需要从不了解数据库的业务层代码中在单个事务中插入/更新/删除多个数据库表。 我们今天通过在我们的业务层中创建一个 TransactionScope 成功地实现了这一点,该业务层又多次调用我们的数据访问层,该层执行必要的数据库操作。

由于 .NET Core 目前不支持分布式事务,Microsoft 有什么建议作为解决方法?

所有3条评论

我们还想从 .NET Framework 移植到 .NET Core,但遇到了一个事实,即 TransactionScope 不支持 DTC,就我们能够移植到 .NET Core 而言,这感觉就像一个交易破坏者。

我们的具体用例是:

  1. 我们需要写入驻留在两个独立 SQL Server 上的两个不同数据库表,并确保它们都以原子方式提交给数据库,我们今天使用 TransactionScope 和 DTC 成功地做到了这一点。
  2. 我们需要从不了解数据库的业务层代码中在单个事务中插入/更新/删除多个数据库表。 我们今天通过在我们的业务层中创建一个 TransactionScope 成功地实现了这一点,该业务层又多次调用我们的数据访问层,该层执行必要的数据库操作。

由于 .NET Core 目前不支持分布式事务,Microsoft 有什么建议作为解决方法?

我们正在调查将此功能引入 Core 的可行性,请继续跟踪 dotnet/corefx#13532 ,该问题将很快转移到此存储库。

问题移至 dotnet/runtime #715

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

omajid picture omajid  ·  3评论

jkotas picture jkotas  ·  3评论

GitAntoinee picture GitAntoinee  ·  3评论

nalywa picture nalywa  ·  3评论

chunseoklee picture chunseoklee  ·  3评论