MSDTC仅在一个方向上工作

11

我试图在单元测试中使用TransactionScope,但在我们的构建服务器上始终出现错误。在遵循几个有用的SO答案和博客之后,我安装了DTCPing并在server1server2上运行它。当我以相反的顺序运行它时,它似乎可以在一个方向上连接,但在另一个方向上失败:

++++++++++++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
我不确定这会不会帮到你,但它确实帮助了我。请参阅以下链接:http://social.msdn.microsoft.com/Forums/en-US/a0f714e4-c278-4ec0-a471-fe5cf2f4b68b/transactionscope-fails?forum=windowstransactionsprogramming&prof=required请注意他强调 hosts 文件的部分,以及有多少条目以及以哪种形式出现。 - CSharpenter
有什么解决办法吗?我遇到了完全相同的问题。在双向上ping和telnet端口135都没问题,DTC在两个防火墙上都有例外规则,但我仍然收到错误1722。 - ChrisC
1个回答

2

你需要在防火墙中添加分布式事务协调器服务作为例外。

另外,请确保启用RPC(端口135)并将其添加为防火墙例外。

如果防火墙是罪魁祸首,您也可以通过关闭防火墙并重新运行DTCPing来进行检查。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接