У меня есть проект WinForms, где я должен читать массивные xml-файлы (2 ГБ +) и хранить данные в базе данных MSSQL.Через 10 минут я получаю ошибку:«Транзакция, связанная с текущим соединением, завершена, но не была удалена. Транзакция должна быть удалена, прежде чем соединение можно будет использовать для выполнения операторов SQL».
Я полагал, что это должно быть проблемой тайм-аута, поэтомуЯ сделал следующее:
Я использую мой код:
using (tran = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions()
{
IsolationLevel = System.Transactions.IsolationLevel.Serializable,
Timeout = TimeSpan.Zero //TimeSpan.FromHours(2)
}))
{
/*Here I read out xml, and use EF to write to DB*/
}
В свой App.config я добавил:
<system.transactions>
<defaultSettings timeout="2:00:00"/>
</system.transactions>
В мой machine.config я добавил:
<system.transactions>
<machineSettings maxTimeout="2:00:00"/>
</system.transactions>
И в MSSQL я устанавливаю тайм-аут удаленного запроса на 0
Тем не менее этот тайм-аут происходит.Что я делаю не так?