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 に答える