我一直在开发一个带有 Oracle 10g 数据库的 winform 应用程序,该应用程序正在使用TransactionScope
并想修改maxTimeOut
指定的值机器配置文件,我的机器配置文件位于以下位置(我为此应用程序使用 .net 4)
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 值没有被使用?
Thanks