1

Web サービス メソッドを呼び出す Winforms アプリケーションがあります。

webservice メソッドは長時間実行されるトランザクションを開始します (残念ながら、長時間実行される 1 つのコマンドとは対照的に、小さなコマンドがたくさんあります)。

私が見る限り、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 に答える