私は、使用している Oracle 10g データベースを使用して winform アプリに取り組んでおり、 machine.configファイルで指定された値TransactionScope
を変更したいと考えていました。私のmachine.configファイルは次の場所にあります (このアプリには .net 4 を使用しています)。maxTimeOut
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config
もともと何も指定されていなかったmaxTimeOut
ので、デフォルトで 10 分になっています。それを変更するために、maxTimeout="00:00:10"
以下に示すように値を追加しました。
<sectionGroup name="system.transactions" type="System.Transactions.Configuration.TransactionsSectionGroup, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null">
<section name="defaultSettings" type="System.Transactions.Configuration.DefaultSettingsSection, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null"/>
<section name="machineSettings" type="System.Transactions.Configuration.MachineSettingsSection, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly" maxTimeout="00:00:10"/>
</sectionGroup>
PC を再起動し、これより長く続くテストを実行しましたが、トランザクションは 10 秒後に中止されたようには見えません。代わりに、scopeOption.TimeOut
TransactionScopeOption パラメーターで指定された値 (5 分) が使用され、トランザクションは 5 分後にタイムアウトします。 .
上記の正しい場所に maxTimeout 値を含めましたか? ファイルに変更が必要なものはありますか? machine.config の maxTimeout の値が使用されないのはなぜですか?
ありがとう