MSDTC работает только в одном направлении
Я пытаюсь использовать TransactionScope
для модульных тестов, и я продолжаю получать ошибки на нашем сервере сборки. После нескольких полезных SO-ответов и блогов я установил DTCPing и запускал их как на server1
, так и на server2
. Когда я запускаю его в обратном порядке, он, кажется, соединяется в одном направлении и терпит неудачу в другом:
++++++++++++Validating Remote Computer Name++++++++++++
Please refer to following log file for details:
D:\KPAHQDEV043372.log
Invoking RPC method on teamcity
RPC test is successful
++++++++++++RPC test completed+++++++++++++++
++++++++++++Start DTC Binding Test +++++++++++++
Trying Bind to teamcity
Binding call to teamcity Failed
Session Down
Но когда я запускаю его в нужном направлении, он просто терпит неудачу RPC
++++++++++++Validating Remote Computer Name++++++++++++
Please refer to following log file for details:
C:\TEAMCITY3024.log
Invoking RPC method on kpahqdev04
Problem:fail to invoke remote RPC method
Error(0x6BA) at dtcping.cpp @303
-->RPC pinging exception
-->1722(The RPC server is unavailable.)
RPC test failed
Я нашел полезную информацию здесь, но теперь я просто застрял. Любые идеи?
Ответы
Ответ 1
Я был в одном и том же положении и, наконец, понял, что наиболее очевидное решение было таким: одна машина имеет брандмауэр, а другой нет. Трудная часть заключалась в том, что только часть брандмауэра была включена, а другие были отключены, поэтому я не заметил этого в первый раз.
Ответ 2
Вам нужно добавить службу Distributed Transaction Coordinator в качестве исключения в брандмауэре.
Также убедитесь, что RPC (порт 135) включен и добавлен как исключение en в брандмауэре.
Также вы можете проверить, является ли брандмауэр виновником, отключив брандмауэр и перезапустив DTCP.