Сбой вашей транзакции через 10 минут?Если это так, возможно, вы используете Максимальное время ожидания диспетчера транзакций , установленное в machine.config.Если я правильно помню, если вы попытаетесь установить тайм-аут, превышающий максимальное значение, то ваши настройки будут игнорироваться.Попробуйте увеличить значение в machine.config и посмотреть, поможет ли это вашей проблеме.
С точки зрения случайных фиксаций вы устанавливаете Transaction Binding=Explicit Unbind
в строке подключения?Значение по умолчанию Transaction Binding=Implicit Unbind
.Начиная с MSDN :
Неявное отсоединение приводит к отсоединению соединения от транзакции после ее завершения.После отсоединения дополнительные запросы на соединение выполняются в режиме автоматической фиксации.Свойство System.Transactions.Transaction.Current не проверяется при выполнении запросов, когда транзакция активна.После завершения транзакции дополнительные запросы выполняются в режиме автоматической фиксации.
В основном, когда время транзакции истекает, все вставки до этой точки будут откатываться, но любые дополнительные вставки, выполненные с использованием того же соединения, будутбыть сделано в режиме автоматической фиксации, где каждый оператор вставки будет немедленно зафиксирован.Это похоже на сценарий, который вы видите (но трудно понять, не увидев полный код / репро).