我有应用程序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名称找到对方”异常信息的这一部分。
要总结,我的问题是:
如何检查系统管理员告诉我真相,并检查端口的应用程序和数据库服务器之间的开放?
如何检查,如果问题不与NetBIOS名称有关系吗?
如果计算机是不可见的与他们的NetBIOS名称怎么办?
如果我错过了给一些有价值的信息,然后写信给我,我会添加它。
先感谢您!