4

私は、使用している Oracle 10g データベースを使用して winform アプリに取り組んでおり、 machine.configファイルで指定された値TransactionScopeを変更したいと考えていました。私のmachine.configファイルは次の場所にあります (このアプリには .net 4 を使用しています)。maxTimeOut

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.TimeOutTransactionScopeOption パラメーターで指定された値 (5 分) が使用され、トランザクションは 5 分後にタイムアウトします。 .

上記の正しい場所に maxTimeout 値を含めましたか? ファイルに変更が必要なものはありますか? machine.config の maxTimeout の値が使用されないのはなぜですか?

ありがとう

4

3 に答える 3