【问题标题】:MSDTC: TransactionManagerCommunicationException after changing IP address of MSSQL serverMSDTC:更改 MSSQL 服务器的 IP 地址后出现 TransactionManagerCommunicationException
【发布时间】:2012-10-03 08:49:32
【问题描述】:

在我们将 Win2k8 MSSQL2008 服务器移动到不同的 IP 地址后,我们无法从外部构建代理对该 SQL 服务器上的数据库运行单元测试。在我们移动数据库服务器之前一切正常。现在,使用多个数据库事务的单元测试失败并显示以下错误消息:

System.Data.EntityException: The underlying provider failed on Open. 
--->   System.Transactions.TransactionManagerCommunicationException: 
Communication with the underlying transaction manager has failed. 
---> System.Runtime.InteropServices.COMException: The MSDTC transaction manager 
was unable to pull the transaction from the source transaction manager due to
communication problems. 
Possible causes are: a firewall is present and it doesn't have an exception for the
MSDTC process, the two machines cannot find each other by their NetBIOS names, or the 
support for network transactions is not enabled for one of the two transaction
managers.

我们检查了防火墙设置,以及从一台服务器 ping 到另一台服务器的能力,没有问题。可能一定有存储在某个地方的 SQL Server 的旧 IP 地址,或者还有什么可能导致这个问题?

感谢您的帮助!

【问题讨论】:

  • ping 测试并不总是意味着可以建立连接尝试在 SQL 服务器端口上使用 telnet 会话(默认值为 1433)。如果您使用服务器名称或别名,您也可能有过时的 DNS 记录,重复的 SPN 也是冲突的可能原因。你最好在ServerFault 上问这个问题

标签: sql-server-2008 msdtc distributed-transactions


【解决方案1】:

问题是在构建服务器上的 LMHOSTS 文件中忘记了旧 IP 地址,修复后 DTC 再次工作。谢谢大家的意见。

【讨论】:

    【解决方案2】:

    MSDTC 使用的端口与 SQL Server 本身不同。确保这些端口也有防火墙例外。 签出:MSDTC and firewall

    如果这没有帮助,试试这个:http://support.microsoft.com/kb/306843

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 2015-10-17
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多