c# - 来自 Machine.Config 的 maxTimeout 值未被 C# winform 应用程序获取

标签 c# transactions oracle10g transactionscope msdtc

我一直在使用 Oracle 10g 数据库开发一个 winform 应用程序,它使用 TransactionScope并想修改 maxTimeOut ma​​chine.config 文件中指定的值,我的 ma​​chine.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 值?

谢谢

最佳答案

它没有被拾取的原因是因为 maxTimeOut 值应该放在 machine.config 文件的末尾,就在结束配置标记之前。一旦我这样做了,它就开始工作了。

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

关于c# - 来自 Machine.Config 的 maxTimeout 值未被 C# winform 应用程序获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16281187/

相关文章:

c# - 在回传中获取 Url

c# - 设置背景禁用 MouseOver 效果

c# - MongoDB 4.4.4 更改流返回所有文档更新而不是过滤条件匹配一个?

hibernate - Grails:执行两个修改同一个对象的连续事务的最佳方法是什么?

concurrency - 乐观并发控制中的后向/前向验证

oracle - 相当于 Oracle 10g 的 SQL Server 跟踪?

java - 使用 jdbc 从 plsql 获取 sys 游标时出错

javascript - Ajax 从对象中返回未定义和有效的数据

java - JPA spring @Transaction 自动提交

function - 在过程或函数中使用 SYS_REFCURSOR