у нас возникли проблемы с TransactionScope в проекте .NET 4.
Мы разделили наши DAL на домены, то есть у нас есть разные LinCon2Sql DataContexts, указывающие на одну и ту же базу данных.
Проблема возникает, когда в одном и том же TransactionScope мы вставляем / обновляем более одного DataContext, мгновенно появляется транзакция msdtc как локально, так и на сервере, а затем она просто висит там на 1-2 минуты. (предположите, что время ожидания истекло), код будет продолжать выполняться до тех пор, пока t.Complete () и последующие подразумеваемые .Dispose не приведут к исключению «Транзакция прервана».
Мы настроили msdtc как локально, так и на сервере, чтобы разрешить все, без аутентификации, с полными уровнями трассировки, но по-прежнему никакой релевантной информации не приходит из dtctrace.log
Я полагаю, что стандартная процедура для msdtc срабатывает, когда инициируется более одного соединения с базой данных (даже если оно сопоставлено с одной и той же базой данных), но почему истекло время ожидания? Операции не противоречат друг другу, в нашем домене не может возникнуть взаимоблокировка?
Гуглил и всесторонне тестировал, надеюсь на какой-нибудь опытный опыт здесь:)