gpt4 book ai didi

sql-server - 为什么我只使用 LinqToSql 和 Ado.Net 时 TransactionScope 使用分布式事务

转载 作者:行者123 更新时间:2023-12-01 10:14:13 26 4
gpt4 key购买 nike

我们在一台机器上遇到问题,错误消息:

"MSDTC on server XXX is unavailable."

该代码使用 TransactionScope 来包装一些 LingToSql 数据库代码;交易中还有一些原始的 Ado.net。

既然只访问一个sql数据库(2005),为什么要使用分布式事务呢?

(我不想知道如何启用 MSDTC,因为代码需要在具有当前设置的服务器上运行)

最佳答案

当您的事务使用多个数据库连接时,这几乎总是会发生。因此,假设您正在更新两个表。您可以使用一个连接更新第一个表,但使用不同的第二个连接更新第二个表。这将导致事务升级到 MSDTC,即使使用 TransactionScope 对象也是如此。

我们解决这个问题的方法是在执行事务时,我们对所有写入使用单个数据库上下文对象。这消除了升级。自从这样做以来,我们再也没有出现过 MSDTC 消息。

兰迪

关于sql-server - 为什么我只使用 LinqToSql 和 Ado.Net 时 TransactionScope 使用分布式事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com