【问题标题】:"Communication with the underlying transaction manager has failed" error message“与底层事务管理器的通信失败”错误消息
【发布时间】:2010-09-17 03:35:47
【问题描述】:

我们的一个客户最近将一个 ASP.NET 1.1 Web 应用程序升级到使用 COM+ 事务处理的 ASP.NET,并在尝试处理事务时收到以下异常:

异常类型: System.Transactions.TransactionManagerCommunicationException
消息:与 底层交易管理器有 失败了。

内部异常类型: System.Runtime.InteropServices.COMException 错误代码:-2147467259
消息:错误 HRESULT E_FAIL 已从 对 COM 组件的调用。

以下是 MSDTC 安全设置中的以下设置:

-- 网络 DTC 访问
-- 允许入站
-- 允许出站
-- 需要来电验证

Windows XP SP3 工作站正在尝试建立与 Windows Server 2003 计算机的连接。

有没有其他人遇到过这个错误并且知道如何解决它。

【问题讨论】:

    标签: asp.net transactions


    【解决方案1】:

    您需要在 XP 工作站和 Windows 2003 计算机上启用网络 DTC 访问。此外,如果您的应用程序仅在内部发布,您可以关闭来电者身份验证并将其设置为“无身份验证”。

    【讨论】:

    • 酷...我会将服务器上的设置与我的工作站上的设置进行比较。
    • 感谢您的回答。我只需将“需要来电者身份验证”更改为“无需身份验证”
    【解决方案2】:

    将 C:\Windows\msdtc.exe 添加到防火墙和服务器上的防火墙例外中。在我这样做之前,我花了很长时间在打开特定的端口号和范围内胡思乱想,但无济于事。

    【讨论】:

    • 在 Windows Server 2008 R2 Datacenter 上,它位于 c:\windows\system32\msdtc.exe。
    【解决方案3】:

    1)除了启用“分布式事务协调”服务的网络访问外,禁用身份验证 (在 xp sp3 机器上,相互验证不起作用)

    2) 为“分布式事务协调”服务启用客户端(Web 应用程序)和服务器(sql server)机器中的网络访问。

    【讨论】:

      【解决方案4】:
      【解决方案5】:

      如果您需要帮助查找其他答案中提到的 MSDTC 设置(就像我所做的那样),以下链接说明了如何在服务器 2003 上配置 MSDTC。

      http://itknowledgeexchange.techtarget.com/sql-server/how-to-configure-dtc-on-windows-2003/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多