版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据错误提示信息,系统在运行分布式事务时抛出了以下异常:
System.Transactions.TransactionManagerCommunicationException: 已禁用对分布式事务管理器(MSDTC)的网络访问。
该问题的核心原因是 MSDTC(Microsoft Distributed Transaction Coordinator) 的网络访问功能未启用,导致分布式事务无法正常工作。MSDTC 是 Windows 系统中用于协调分布式事务的关键组件,若其安全配置中禁止了网络访问,则分布式事务将无法跨网络或远程资源执行。
要解决此问题,需要启用 MSDTC 的网络访问功能,并确保其安全配置允许分布式事务的正常运行。以下是详细的操作步骤:
通过 Windows 的 组件服务管理工具 配置 MSDTC 的安全设置:
打开 组件服务管理工具:
Win + R
键,输入 dcomcnfg
,然后按回车。配置 MSDTC 安全设置:
重启 MSDTC 服务:
Win + R
键,输入 services.msc
)。确保防火墙未阻止 MSDTC 的通信端口(默认为 TCP 135 和动态分配的 RPC 端口)。如果防火墙启用了限制规则,需添加例外:
完成上述配置后,可以通过以下方式验证 MSDTC 是否正常工作:
使用 DTCPing 工具 测试分布式事务的连通性:
运行简单的分布式事务代码,验证是否仍出现异常。
通过启用 MSDTC 的网络访问功能、调整安全配置以及检查防火墙规则,可以有效解决“已禁用对分布式事务管理器(MSDTC)的网络访问”的问题。完成配置后,建议使用 DTCPing 工具验证连通性,确保分布式事务能够正常运行。