1

我有一个调用 web 服务方法的 Winforms 应用程序

webservice 方法启动一个长时间运行的事务(不幸的是,有很多小命令而不是一个长时间运行的命令。)

据我所知,如果 webservice 调用超时,webservice 方法中的事务将继续运行并完成。我希望发生的事情是当 web 服务超时时事务回滚。这可能吗?

4

1 回答 1

0

恢复一个旧线程,但我遇到了同样的问题,所以我想我会为遇到它的其他人更新这个。我发现的最佳解决方案是使用 XACT_ABORT 即插入

SET XACT_ABORT ON

在您的交易开始时。这将强制回滚任何类型的客户端错误(因此您的事务将不会继续运行和完成,它只会回滚)。在 dba stackexchange 中有一个非常好的讨论:

https://dba.stackexchange.com/questions/10912/sql-server-transaction-timeout

于 2013-09-24T00:47:36.297 回答