分布式事务处理协调器 - 基础提供失败的开放(Distributed Transaction Coo

2019-10-20 02:16发布

我有应用程序A和应用B,两者在同一台服务器上。 应用程序A调用WCF服务,利用netmsmqbinding和私人队列位于应用程序B。 B的服务方法,该方法被调用时,使用实体框架来对数据库的调用。 然而,这个异常被抛出在B:

System.Data.Entity.Core.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 push the transaction to the destination transaction manager due to communication problems.

可能的原因是:有防火墙,它并没有对MSDTC过程异常,在两台计算机无法通过其NetBIOS名称找到对方,或者对于网络交易的支持不是两个事务管理器中启用了。

这是DTC设置- http://postimg.org/image/rzqxf17t3/

服务器系统管理员已确保我来说是不是一个防火墙问题。 因此,我认为这是我应该检查“两个机无法通过其NetBIOS名称找到对方”异常信息的这一部分。

要总结,我的问题是:

  1. 如何检查系统管理员告诉我真相,并检查端口的应用程序和数据库服务器之间的开放?

  2. 如何检查,如果问题不与NetBIOS名称有关系吗?

  3. 如果计算机是不可见的与他们的NetBIOS名称怎么办?

如果我错过了给一些有价值的信息,然后写信给我,我会添加它。

先感谢您!

Answer 1:

这是一个防火墙问题。 我已经使用本文固定http://support.microsoft.com/kb/250367



文章来源: Distributed Transaction Coordinator - The underlying provider failed on Open