C# TransactionTimeout工作不正常 使用(TransactionScope transaction=TransactionScopeManager.GetTransactionScope(Settings.Import.TimeOut)) { Logger.Trace.DebugFormat(“导入扣除超时:”,Settings.Import.timeout); //记录器显示“导入扣减超时:” //更多代码 }

C# TransactionTimeout工作不正常 使用(TransactionScope transaction=TransactionScopeManager.GetTransactionScope(Settings.Import.TimeOut)) { Logger.Trace.DebugFormat(“导入扣除超时:”,Settings.Import.timeout); //记录器显示“导入扣减超时:” //更多代码 },c#,transactions,C#,Transactions,但事务总是只运行10分钟。 我已更改部分: 但10分钟后它仍在继续失败。 为什么? 请帮忙。根据: 在机器配置中,有一个值限制超时。通过 默认值为10分钟。因此,如果将超时设置为大于10 分钟,在System.Transactions中,您的值将被忽略,并且 系统将按超时为10分钟的方式运行 看 及 及 @Jermy为您提供了一个答案,但是如果您需要一个超过10分钟的事务,我建议您重新评估您的设计。我通常认为我的事务是以毫秒为单位的,在高端是以秒为单位的。这就是为什么我需要这么长的事务处

但事务总是只运行10分钟。 我已更改部分:


但10分钟后它仍在继续失败。 为什么?

请帮忙。

根据:

在机器配置中,有一个值限制超时。通过 默认值为10分钟。因此,如果将超时设置为大于10 分钟,在System.Transactions中,您的值将被忽略,并且 系统将按超时为10分钟的方式运行

看 及


@Jermy为您提供了一个答案,但是如果您需要一个超过10分钟的事务,我建议您重新评估您的设计。我通常认为我的事务是以毫秒为单位的,在高端是以秒为单位的。这就是为什么我需要这么长的事务处理时间,我很早就添加了这个参数(请参见ask)。我应该重新启动计算机吗?谢谢@Jeremy,我解决了这个问题。有两个文件夹名为Framework和Framework64。首先,我在Framework文件夹的machine.config中更改了maxTimeout。但后来我尝试在Framework64文件夹中更改它,它就工作了!
using (TransactionScope transaction = TransactionScopeManager.GetTransactionScope(Settings.Import.TimeOut))
{
    Logger.Trace.DebugFormat("Import Deduction timeout: <{0}>", Settings.Import.TimeOut);
    //Logger shows "Import Deduction timeout: <30>"
    //more code
}
 <system.transactions>
     <machineSettings maxTimeout=″01:30:00″/>
 </system.transactions>