我有一个多线程C#应用程序,其中每个线程都有自己的数据库连接集.每个线程使用TransactionScope/DTC.有时候,我得到一个"交易中止"的例外.它不是来自超时,因为它在启动事务后不到2秒就会发生.
这是堆栈跟踪:
在System.Transactions.TransactionStateAborted.BeginCommit(InternalTransaction TX,布尔asyncCommit,的AsyncCallback的AsyncCallback,对象asyncState)在System.Transactions.CommittableTransaction.Commit()在System.Transactions.TransactionScope.InternalDispose()在System.Transactions.TransactionScope.Dispose( )在MyNamespace.CallingMethod()
它很少发生,比如曾经进行过100,000次交易.
环境:Windows Server 2003 .Net 2.0连接到SqlServer 2005
有关为何发生这种情况的任何想法?谢谢!