Я использовал для определения тайм-аутов транзакций с помощью TransactionOptions.Timeout, но решил упростить обслуживание для использования подхода config:
<system.transactions>
<defaultSettings timeout="00:01:00" />
</system.transactions>
Конечно, после того, как я положил это, я захотел проверить, что он работает, поэтому сократил тайм-аут до 5 секунд, а затем прошел тест, который длился дольше, чем это, но транзакция не прерывается! Если я настрою тест, чтобы установить TransactionOptions.Timeout на 5 секунд, тест работает как ожидалось
После исследования Я думаю, что проблема, похоже, связана с TransactionOptions.Timeout, хотя я больше не использую ее.
Мне все еще нужно использовать TransactionOptions, поэтому я могу установить IsolationLevel, но я больше не устанавливаю значение Timeout, если я смотрю на этот объект после его создания, значение таймаута равно 00:00:00, что равнозначно бесконечности. Означает ли это, что мое значение, установленное в файле конфигурации, игнорируется?
Подводя итог:
- Невозможно ли смешивать конфигурацию установления и использования TransactionOptions
- Если нет, есть ли любой способ извлечь настройку конфигурации во время выполнения, и используйте это, чтобы установить Свойство тайм-аута
- [Изменить] ИЛИ Установить уровень изоляции по умолчанию без использования TransactionOptions