我们的客户最近将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计算机的连接。
是否有其他人遇到此错误并知道如何解决此问题。
答案 0 :(得分:14)
您需要在XP工作站和Windows 2003计算机上启用网络DTC访问。此外,如果您的应用程序仅在内部发布,则可以关闭传入的呼叫者身份验证并将其设置为“无身份验证”。
答案 1 :(得分:9)
将C:\ Windows \ msdtc.exe添加到防火墙和服务器上的防火墙例外。在我这样做之前,我花了很多年的时间来打开特定的端口号和范围无济于事。
答案 2 :(得分:3)
1)除了启用网络访问“分布式事务协调”服务外,禁用身份验证 (相互身份验证不能像在xp sp3机器中的Internet中显示的那样工作)
2)在客户端(web应用程序)和服务器(sql server)机器上启用“分布式事务协调”服务的网络访问。
答案 3 :(得分:2)
您还需要确保防火墙对端口135和5000-5020开放。
见这些: http://social.msdn.microsoft.com/forums/en-US/windowstransactionsprogramming/thread/71f7a219-c85d-4a04-973b-c73464f59606/ http://blogs.msdn.com/florinlazar/archive/2005/09/16/469064.aspx http://social.msdn.microsoft.com/forums/en-US/architecturegeneral/thread/7731d7a7-a9ad-42e7-b0bb-f3656b870304/ http://support.microsoft.com/kb/154596/
答案 4 :(得分:0)
如果您需要帮助查找其他答案中提到的MSDTC设置(就像我一样),以下链接将说明如何在服务器2003上配置MSDTC。
http://itknowledgeexchange.techtarget.com/sql-server/how-to-configure-dtc-on-windows-2003/