我一直在使用 Oracle 10g 数据库开发一个 winform 应用程序,该应用程序正在使用TransactionScope
并想要修改 machine.config 文件中指定的值maxTimeOut
,我的machine.config文件位于以下位置(我为此应用程序使用 .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 值?
谢谢