我一直在使用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秒后似乎不会中止,而是使用transactionscopeoption参数中指定的scopeOption.TimeOut值(即5分钟),事务在5分钟后超时。
我是否已将maxTimeout值包含在上面的正确位置?文件中有什么需要更改的地方吗?为什么没有使用machine.config中的maxmeout值?
谢谢

最佳答案

之所以没有选择它,是因为maxTimeout值应该放在machine.config文件的末尾,就在关闭配置标记之前。我一这样做,它就开始工作了。

<configuration>
    <!-- Other configuration sections-->
    <system.transactions>
        <machineSettings maxTimeout="01:00:00" />
    </system.transactions>
</configuration>

08-07 14:02