8

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

异常类型:System.Transactions.TransactionManagerCommunicationException
消息:与底层事务管理器的通信失败。

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

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

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

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

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

4

5 回答 5

14

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

于 2008-10-22T00:59:37.077 回答
9

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

于 2009-05-06T09:29:03.277 回答
3

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

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

于 2009-10-20T12:11:21.080 回答
0

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

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

于 2013-02-06T16:01:16.927 回答