我有以下异常的问题:



对数据库的“调用”需要10m 53s(在没有事务的情况下进行测试并成功完成)
交易后10m后引发异常。因此,我很确定不是导致问题的代码,而是事务超时限制。

我已经看到很多人都在为这个问题而苦苦挣扎,但是我已经尝试了所有可能的解决方案,但是仍然没有成功摆脱这种异常的方法。

我使用以下代码:

[...]
TransactionOptions transactionOptions = new TransactionOptions();
transactionOptions.IsolationLevel = IsolationLevel.Snapshot;
transactionOptions.Timeout = new TimeSpan( 0, 0, 30, 0, 0 );

using( var scope = new TransactionScope(TransactionScopeOption.Required, transactionOptions) )
{
     foreach (var selector in GetDataContext().sp_GetChangedSelectors(changeSet))
     {
          // xml-result will be stored in a file
     }

     // multiple other SP calls the same way

     scope.Complete( );
}

我添加了声明
<system.transactions>
    <machineSettings maxTimeout="02:00:00"/>
</system.transactions>

到%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\Config中的 machine.config
在两台机器上(本地和sql-server-machine)。

我没有足够的想法下一步可以尝试什么。有什么建议么?

最佳答案

只是一个疯狂的猜测:您正在运行32位应用程序吗?那么这可能是错误的machine.config!

%WINDIR%\Microsoft.NET\Framework\v4.0.30319

否则,我将检查该值是否在web.config或app.config中被覆盖

09-27 19:40