Произвольная ошибка TransactionScope в режиме отладки - PullRequest
0 голосов
/ 12 октября 2009

Я получаю следующую ошибку случайно при выполнении кода из режима отладки.

Cannot access a disposed object.
Object name: 'SqlDelegatedTransaction'.
  • Ошибка выдается после того, как несколько команд были выполнены мгновенно, а не проблема тайм-аута
  • У меня есть только одна транзакция, открытая с помощью

    с использованием (var scope = new TransactionScope (TransactionOption.Required))

  • Несколько соединений открываются с помощью одного и того же оператора выше во вложенном коде.

  • я использую sqlserver 2008

Что может быть не так?

1 Ответ

0 голосов
/ 02 ноября 2009

При использовании TransactionOption.Required транзакция присоединяется к внешней транзакции.

Одна из возможных теорий:

  • Если вы пройдете через область транзакции и не вызовете scope.Complete (), она удалит заведомо транзакцию. Следующий код, который попытается выполнить с базой данных, потерпит неудачу.

Еще бы проблемы с активными наборами результатов:

  • Используете ли вы SQL Server 2000, который не поддерживает несколько активных наборов результатов (MARS)
  • Указывает ли в строке подключения MultipleActiveResultSets = true
...