0

我在一个函数中添加了一个事务范围,该函数每晚都会清除一些表并添加新项目。

我收到以下错误的问题:

内部异常:事务超时 事务已中止。

这项工作大约需要 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 文件

4

1 回答 1

1

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

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

于 2013-02-16T07:30:10.527 回答