Dtcping тест проходит, но по-прежнему иметь связь с базовым менеджером транзакций не удалось


Инструмент DTCPing говорит, что все должно быть хорошо. Фактическое исключение составляет:

System.Transactions.TransactionManagerCommunicationException:

Связь с базовым менеджером транзакций не удалась. --- > Система.Во время выполнения.Интерактивные службы.COMException: транзакция MSDTC менеджеру не удалось протолкнуть транзакцию к месту назначения менеджер транзакций из-за проблем со связью. Возможная причина are: брандмауэр присутствует, и он не имеет исключения для Процесс MSDTC, две машины не могут найти друг друга по их Имена NetBIOS или поддержка сетевых транзакций не включена для одного из двух менеджеров по сделкам. (Исключение из HRESULT: 0x8004D02A)

Служба работает на виртуальной машине. Другие серверы могут выполнять распределенные транзакции, поэтому DB box настроен правильно.

2 8

2 ответа:

Здесь есть хорошая статья на эту тему: Устранение неполадок с MSDTC. Он был первоначально написан для BizTalk Server, но применяется и на других серверах.

Поскольку вы запускаете VPC, возможно, DTC совместно использует некоторые идентификаторы с другой машиной в той же сети. Пожалуйста, проверьте раздел "убедитесь, что MSDTC присвоено уникальное значение CID" в этой статье (см. Также http://blogs.msdn.com/b/johnlee/archive/2008/09/09/msdtc-on-virtual-machines.aspx ), хотя я считаю, что DTCPing должен рассказать вам об этом... Вы также можете попробовать msdtc -uninstall и msdtc -install исправить это.

Вы также должны проверить, не использует ли ваш сервер какую-либо технологию VPN или шифрования. Я вроде как помню, что это может вызвать проблемы.

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

Тем не менее, я обнаружил, что инструмент под названием DTCTester более полезен, чем DTCPing. http://support.microsoft.com/kb/293799

Его немного сложнее использовать, чем DTCPing, но он также тестирует гораздо ближе к тому, что вы обычно ищете, что дает вам более чистый результат теста.

* Убедитесь, что все возможные брандмауэры/программы фильтрации отключены и / или не существуют *

Я не могу подчеркнуть, что достаточно, я однажды потратил почти 90 минут, пытаясь убедить cusotmer, что его программное обеспечение VPN действовало как персональный брандмауэр и блокировало входящие сокеты. Как только он отключил его, проблемы исчезли. (программное обеспечение incidently был Циско VPN-клиент, установка была "брандмауэр с учетом состояний (всегда на)" - Да, это всегда на :) )

Помните, что DTC-это двусторонний трафик, поэтому это должно быть верно с обеих сторон, и Вам также нужно убедиться, что обе машины имеют" разрешить сетевой доступ DTC". Я также обнаружил, что, убедившись, что настройки DTC на обеих коробках синхронизированы, как правило, обеспечивает надежное взаимодействие.