Masataka Miki's Blog

すみません、わかりません。もっと勉強して改善します。

[C#]TransactionScopeのタイムアウト時間

   

トランザクションのタイムアウトは、以下のように設定できる。

① 指定しない場合は1分

using (var transaction = new TransactionScope())
{
}

② 5分

using (var transaction = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromMinutes(5.0)))
{
}

③ 0を指定した場合は、無制限

using (var transaction = new TransactionScope(TransactionScopeOption.Required, TimeSpan.Zero))
{
}

ただし、machine.configファイルに最大値を設定しておかないと、③の場合も、最大値の初期値である、10分でタイムアウトとなる。
<configuration>
  <system.transactions>
    <machineSettings maxTimeout="00:30:00" />
  </system.transactions>
</configuration>

TransactionManager.MaximumTimeoutで最大値の確認ができる。

 - 技術