linq2sql transactionscope timeout

时间:2013-02-16 07:22:08

标签: c# transactionscope timeoutexception

我已经为每天晚上清除一些表并添加新项目的函数添加了一个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文件

1 个答案:

答案 0 :(得分:1)

TransactionManager 具有最大超时时间。检查machine.config。我认为即使您将数据上下文的超时设置为高于最大值,也会忽略它,并且将使用machine.config值,因此您需要调整machine.config文件。

http://msdn.microsoft.com/en-us/library/system.transactions.transactionmanager.maximumtimeout.aspx