我有應用程序A和應用程序B,都在同一臺服務器上。應用程序A使用netmsmqbinding和一個專用隊列調用位於應用程序B中的WCF服務。 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名稱不可見,我該怎麼辦?
如果我錯過了提供一些有價值的信息,然後寫信給我,我會添加它。
預先感謝您!
這個問題似乎是題外話題,因爲它是關於服務器配置/測試,應該在serverfault –