我已经为每天晚上清除一些表并添加新项目的函数添加了一个transactioncope。
我收到以下错误的问题:
内部异常:交易超时 交易已中止。
这项工作大约需要12分钟才能完成,在添加了事务管理器后,我每次运行该函数时都会收到此错误。
我的代码:
XalSqlDataContext db = new XalSqlDataContext();
db.CommandTimeout = 3600;
TransactionOptions options = new TransactionOptions();
options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
options.Timeout = new TimeSpan(0, 40, 0);
using (TransactionScope txScope = new TransactionScope(TransactionScopeOption.Required, options))
{
//my code
}
但我仍然会暂停。
我的ms sql问题的任何线索。
我能够在没有任何帮助的情况下将.net 2.0的机器配置中的事务超时更改为一小时。
我的代码在.net 3.5下运行,但我的.net 3.5文件夹下没有machine.config文件
答案 0 :(得分:1)
TransactionManager 具有最大超时时间。检查machine.config。我认为即使您将数据上下文的超时设置为高于最大值,也会忽略它,并且将使用machine.config值,因此您需要调整machine.config文件。
http://msdn.microsoft.com/en-us/library/system.transactions.transactionmanager.maximumtimeout.aspx