【发布时间】:2014-11-09 20:00:04
【问题描述】:
我在服务器 1 上托管了我的 Webapp,在服务器 2 上托管了我的数据库
但我得到以下错误
“与底层事务管理器的通信失败。”
我用谷歌搜索了一个帖子,其中提到这是 DTC(分布式交易)的问题 我在 server2(数据库服务器)上启用了 DTC,并在防火墙中将其排除在外。
但还是同样的错误。
这是完整的堆栈跟踪
消息:System.Transactions.TransactionManagerCommunicationException:与底层事务管理器的通信失败。 ---> System.Runtime.InteropServices.COMException:由于通信问题,MSDTC 事务管理器无法从源事务管理器中提取事务。可能的原因是:存在防火墙并且它对 MSDTC 进程没有异常,两台机器无法通过它们的 NetBIOS 名称找到彼此,或者两个事务管理器之一未启用对网络事务的支持。 (来自 HRESULT 的异常:0x8004D02B) 在 System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel&isolationLevel, ITransactionShim& transactionShim) 在 System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)
请多指教
【问题讨论】:
-
我有时在 Windows 2088 中遇到同样的问题,我不知道如何解决。它有时会发生。 :(
-
您是否尝试在应用服务器上也设置它?您正在配置入站/出站。它解决了我的问题。
标签: sql-server transactions windows-server-2008 windows-server-2003 msdtc