gpt4 book ai didi

sql-server - 由于通信问题,MSDTC 事务管理器无法从源事务管理器中提取事务

转载 作者:行者123 更新时间:2023-12-02 08:26:31 24 4
gpt4 key购买 nike

我在服务器 1 上托管了我的 WebApp,在服务器 2 上托管了我的数据库

但是我收到以下错误

Communication with the underlying transaction manager has failed.

我google了一下,发现一个帖子提到这是DTC(分布式事务)的问题我在server2(数据库服务器)上启用了DTC,并在防火墙中对其进行了异常(exception)处理。

enter image description here

enter image description here

但仍然出现同样的错误。

这是完整的堆栈跟踪

Message: 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. (Exception from HRESULT: 0x8004D02B)at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)

请多多指教

最佳答案

我们遇到过完全相同的情况,而且不止一次。每次都是以下之一:

  1. 服务器的 DNS 中的 IP 地址已过时(如错误消息中所述:“两台计算机无法通过 NetBIOS 名称找到对方”)。您可以通过在命令提示符下尝试从一台服务器到另一台服务器 ping servername 来检查是否存在这种情况。如果按名称执行 ping 操作失败,但按 IP 执行 ping 操作成功(或按名称执行 ping 操作返回错误的 IP),则您应该与系统管理员联系以查看 DNS/DHCP。

  2. 服务器被创建为预配置服务器的镜像(例如,如果您正在使用虚拟机,则无需为每台服务器进行全新安装,只需克隆镜像即可)。这是一个问题,因为 DTC 有一个内部“标识符” - 如果进行镜像克隆,您的两个安装现在都具有相同的 DTC ID,并且将无法相互通信。解决方案是简单地卸载并重新安装 DTC。

希望有帮助。

关于sql-server - 由于通信问题,MSDTC 事务管理器无法从源事务管理器中提取事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25862509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com