Проследите, почему транзакция перешла в DTC

Есть ли какой-либо способ точно определить, почему процесс TrasactionScope System.Transaction перерастает в DTC? Мы сталкиваемся с одним из наших компонентов, которые, похоже, эскалируют транзакцию, в то время как все остальные компоненты (которые кажутся обманчиво похожими) не делают эскалации.

Предоставляются ли какие-либо сведения о причинах эскалации и как их можно найти и наблюдать? SQL Profiler? Лог файлы? Или мне не повезло на этом?

UPDATE: я запускаю сервер SQL Server 2005 для информации

Ответ 1

Вы можете попытаться отключить службу Distributed Transaction Cordinator и отключить ее тип запуска. Это приведет к возникновению исключения при продвижении транзакции, который будет иметь код проблемы в стеке вызовов.

Конечно, это не поможет, если у вас есть другие элементы, работающие на машине, которые требуют эту услугу, но будут возможны на машине отладки.

Ответ 2

При использовании TransactionScope транзакция эскалируется всякий раз, когда приложение открывает второе соединение (даже в той же базе данных) в пределах области транзакции, о которой идет речь.