03U*_*Usr 4 c# msdtc transactions transactionscope oracle10g
我一直在使用Oracle 10g数据库的winform应用程序正在使用TransactionScope
并且想要修改machine.config文件中maxTimeOut
指定的值,我的machine.config文件位于以下位置(我正在使用.net 4用于此应用程序)
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config
Run Code Online (Sandbox Code Playgroud)
最初没有指定任何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>
Run Code Online (Sandbox Code Playgroud)
我已重新启动PC并运行了一个持续时间超过此时间的测试 - 但事务在10秒后似乎没有中止,而是scopeOption.TimeOut
使用了TransactionScopeOption参数中指定的值(5分钟),并且事务在5分钟后超时.
我是否已将maxTimeout值包含在上方的正确位置?文件中是否有任何需要更改的内容?为什么没有使用machine.config中maxTimeout的值?
谢谢
03U*_*Usr 18
它没有被选中的原因是因为maxTimeOut值应该放在关闭配置标记之前的machine.config文件的末尾.我一做到这一点就开始工作了.
<configuration>
<!-- Other configuration sections-->
<system.transactions>
<machineSettings maxTimeout="01:00:00" />
</system.transactions>
</configuration>
Run Code Online (Sandbox Code Playgroud)