我在用:
public class TransactionUtils
{
public static TransactionScope CreateTransactionScope()
{
var TransactionOptions = new TransactionOptions();
TransactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
TransactionOptions.Timeout = TimeSpan.MaxValue;
return new TransactionScope(TransactionScopeOption.Required, TransactionOptions);
}
}
创建我的所有交易。我面临的问题是当我嵌套 2 时TransactionUtils.CreateTransactionScope()
出现错误:Time-out interval must be less than 2^32-2. Parameter name: dueTm
. 我假设这是因为它试图将子事务附加到父事务,并且合并的超时时间很大。
有没有办法判断新创建的事务是否是嵌套事务,这样我就可以避免设置超时?
另一种方法是传递一个参数,CreateTransactionScope()
这样我就可以告诉它它是嵌套的并且不设置超时,但我宁愿找到一种自动处理它的方法。