昨天写的关于“但还有一个问题没有解决,就是调试时间稍微长点,Enterprise Library中的TransactionScopeConnection就要执行认为事务执行成功,执行OnTransactionCompleted委托事件,并释放了所有数据库连接对象;” 问题,是我的问题,昨晚看了一下MSDN的说明,其中说到执行事务超时问题“在以下情况下最适合采用无限制的超时:进行调试时;您希望通过逐步骤执行代码确定业务逻辑中的问题时;或者在尝试确定问题时不希望所调试的事务超时的情况。”
解决方式是将超时值设置为0,意思是对超时无限制;
TimeSpan timeSpan = new TimeSoan(0);
using(TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,))
{
//do
}
“在所有其他情况下使用无限制的超时值时应该非常谨慎,因为该值将重写对避免发生事务死锁的保护”