2
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
}

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

 <system.transactions>
     <machineSettings maxTimeout=″01:30:00″/>
 </system.transactions>

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

请帮忙。

4

1 回答 1

1

根据http://msdn.microsoft.com/en-us/library/ms149852(v=vs.90).aspx

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

请参阅 http://msdn.microsoft.com/en-us/library/system.transactions.configuration.machinesettingssection.maxtimeout.aspx

http://social.msdn.microsoft.com/Forums/en-US/windowstransactionsprogramming/thread/ba508c2b-af91-490c-a05c-e4bf92f81cc6

http://blogs.msdn.com/ajit/archive/2008/06/18/override-the-system-transactions-default-timeout-of-10-minutes-in-the-code.aspx

于 2012-04-28T11:48:22.807 回答