У меня есть код, использующий System.Transactions.TransactionScope
, который при создании нового экземпляра области транзакции просто останавливает программу.
Нет никаких исключений или сообщений, программа просто останавливается, и Visual Studio возвращается в режим редактирования кода. Процесс полностью ушел. В средстве просмотра событий нет исключений, сообщений или событий.
У меня есть другое тестовое приложение, которое без проблем использует TransactionScope, поэтому это не должно быть проблемой среды.
Я просто не знаю, как получить детализацию исключения. Я включил все «брошенные» флажки в диалоговом окне «Отладка -> Исключения» в Visual Studio, надеясь, что VS автоматически сломается при возникновении исключения, но это не так.
Может кто-нибудь помочь мне выяснить причину выхода из программы?
РЕДАКТИРОВАТЬ: Я только что нашел что-то новое. TransactionScope создается в методе, работающем в фоновом потоке через ThreadPool.QueueUserWorkItem
. Если я просто вызову метод непосредственно в главном потоке приложения, эта проблема исчезнет. Итак, теперь мой вопрос «в чем проблема с использованием TransactionScope в потоке потоков?». Обратите внимание, что я не запускаю область транзакции до вызова нового потока, все это в одном методе, выполняемом в потоке потоков.