c# transactions oracle10g transactionscope msdtc

El valor de maxTimeout de Machine.Config no es recogido por la aplicación winform de C#



transactions oracle10g (2)

La razón por la que no se recogió fue porque el valor de maxTimeOut debe colocarse al final del archivo machine.config justo antes de la etiqueta de configuración de cierre. Tan pronto como lo haya hecho de esta manera comenzó a funcionar.

<system.transactions> <machineSettings maxTimeout="01:00:00" /> </system.transactions> </configuration>

He estado trabajando en una aplicación winform con la base de datos Oracle 10g que usa TransactionScope y quería modificar el valor maxTimeOut especificado en el archivo maxTimeOut , mi archivo machine.config está en la siguiente ubicación (estoy usando .net 4 para esta aplicación )

C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Config

Originalmente, no había nada especificado para maxTimeOut en él, por lo tanto, su valor predeterminado es 10 minutos. Para cambiarlo, he agregado el valor de maxTimeout="00:00:10" como se ve a continuación:

<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>

He reiniciado la PC y ejecutado una prueba que duró más que esto, pero la transacción no parece abortar después de 10 segundos, en su lugar se scopeOption.TimeOut valor scopeOption.TimeOut (que es 5 min) especificado en el parámetro TransactionScopeOption y la transacción se agota después de 5 minutos.

¿He incluido el valor de maxTimeout en el lugar correcto de arriba? ¿Hay algo que necesite cambiar en el archivo? ¿Por qué no se usa el valor de maxTimeout de machine.config?

Gracias


intente configurar el valor en la configuración de máquina de 32 bits

C:/Windows/Microsoft.NET/Framework/v4.0.30319/Config

Podría ser que los winforms estén configurados para la compilación x86. También verifique que no haya una configuración y tiempo de espera de transacción de odac para establecer también.