“与底层事务管理器的通信失败”错误消息

时间:2008-10-14 16:59:11

标签: asp.net transactions

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

  

异常类型:   System.Transactions.TransactionManagerCommunicationException
  消息:与...沟通   基础交易经理有   失败。

     

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

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

  

- 网络DTC访问
   - 允许入境
   - 允许出境
   - 需要传入呼叫者身份验证

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

是否有其他人遇到此错误并知道如何解决此问题。

5 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:9)

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

答案 2 :(得分:3)

1)除了启用网络访问“分布式事务协调”服务外,禁用身份验证 (相互身份验证不能像在xp sp3机器中的Internet中显示的那样工作)

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

答案 3 :(得分:2)

答案 4 :(得分:0)

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

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