gpt4 book ai didi

c# - TransactionScopeOption.RequiresNew 的 TransactionScope 超时异常

转载 作者:行者123 更新时间:2023-11-30 16:36:28 27 4
gpt4 key购买 nike

这里发生了一些非常奇怪的事情。

我只是在我正在调试的一些遗留代码周围添加了一个事务范围,以确保我正在做的摆弄不会被提交。

这工作了两次,然后说:

"The transaction manager has disabled its support for remote/network transactions."

在工作/非工作之间没有任何代码更改或重建(字面上连续 3 个 F5 [网络应用程序])。这是连接到删除数据库服务器的本地代码。

自此,不同项目中完全独立的代码超时。如果我从此代码中删除 transactionScopes,它运行正常,但它们就位时超时。我试过我的本地 SQL 服务器和远程 SQL 服务器,都在 transactionScope 内超时。

这到底是怎么回事?

编辑:我发现从以下位置更改我的 TransactionScopes:

using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew))

using (var scope = new TransactionScope())

防止问题 :s

这是什么意思?

最佳答案

两者的区别:

using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew))

using (var scope = new TransactionScope())

第二个是否重用现有(环境)事务,而第一个在旧事务中创建新事务。

事务中的此事务需要分布式事务协调器。

您的错误可能有以下三个原因:

  • MSDTC 未运行
  • 您的数据库位于另一台机器上,并且 Windows 配置为不允许来自网络的事务。
  • 您的数据库在不同的机器上,并且 SQL 服务器配置为不允许来自网络的事务

关于c# - TransactionScopeOption.RequiresNew 的 TransactionScope 超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792977/

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