MSDTC недоступен, но только в одном направлении?
У меня включен DTC на 2 серверах - веб-сервере и сервере базы данных. В наших веб-приложениях есть несколько мест, где нам нужно использовать DTC (через TransactionScope) для управления транзакциями с несколькими базами данных. На наших серверах AD он работает нормально, но по какой-то причине он не работает полностью на одной паре, которая не является членом домена. Я получаю следующую ошибку:
MSDTC on server 'DATABASE-SERVER' is unavailable.
Используя DTCPing с моего веб-сервера, я получаю успешный тест, а с моего сервера базы данных - нет (он останавливается после вызова RPC без сообщений).
Некоторые замечания по конфигурации:
- Брандмауэры отключены на обоих серверах
- DTC настроен одинаково для обоих (локальные свойства DTC имеют сетевой доступ по DTC и т. Д., Позволяют удаленным клиентам / администраторам, разрешают входящую / исходящую связь, включают все типы транзакций и "Аутентификация не требуется").
- Используя DTCPing, я могу подключиться с веб-сервера к серверу базы данных, но не наоборот
- RCPPing отлично работает в обоих направлениях
- DTC работает на обоих
- Я перезапустил службу и несколько раз произвел удаление / установку на обоих серверах
- nbtstat -c правильно показывает имена удаленных серверов
Единственное различие между серверами, которое я могу найти, состоит в том, что когда я запускаю DTCPing с сервера базы данных, он не завершает тест (он просто говорит: "Пожалуйста, запустите PING с WEB-SERVER, чтобы завершить тест"), а если я инициирую с веб-сервера это завершить всю вещь на обоих концах.