繁体   English   中英

即使停止,ADO .NET事务作用域也会锁定事务

[英]ADO .NET transaction scope locks transaction even after stopped

我已经在Web API应用程序中实现了交易范围。 当我必须全部提交或全部回滚时,它工作正常。 但是有时在调试时,如果我在事务完成之前停止了服务,则事务将被锁定。 该表仍显示为锁定状态,即使关闭了Visual Studio,该特定会话仍保留在数据库中。 有时会发生这种情况,而部分交易不会回滚。 我还为transactionscope设置了超时。 问题仍然在发生。 在两者之间停止服务后,是否还有立即中止表操作的情况?

您需要使用TransactionScope吗? 如果没有,您可以使用与连接相关的SqlTransaction进行研究。

细节

如果客户端与数据库引擎实例的网络连接中断,则当网络通知中断实例时,该连接的所有未完成事务都会回滚。 如果客户端应用程序失败,或者客户端计算机关闭或重新启动,这也会断开连接,并且数据库引擎实例会在网络通知断开连接时回滚所有未完成的连接。 如果客户端注销该应用程序,则所有未完成的事务都会回滚。

using (SqlConnection cn = new SqlConnection("YOUR CONNECTION")) 
{
    cn.Open();
    using (SqlTransaction tr = cn.BeginTransaction()) 
    {
        // your transactional code
        tr.Commit();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM