代码改变世界

The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction

  潇湘隐者  阅读(1181)  评论(0编辑  收藏  举报

今天遇到一起关于分布式事务错误的案例,如下所示,执行SQL脚本时报错, 错误信息具体如下所示:

 

[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]

OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].

Msg 7391, Level 16, State 1, Procedure UpdatePermissionSystem, Line 18

The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.

 

  检查了数据库选项以及DTC配置,最后发现是事务管理器通信的选项没有选择不要求进行验证(No Authentication Required),而是勾选了要求相互进行身份验证(Mutual Authentication Required)导致. 选择了不要求进行验证 后,重启DTC服务,即可解决这个错误。

 

 

clip_image001

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2017-04-12 ORA-12514, TNS:listener does not currently know of service requested in connect descriptor案例2
2014-04-12 ORACLE查看补丁出现“OPatch failed with error code 1”
2012-04-12 SQL语言艺术实践篇——局外思考
2010-04-12 XP系统无法运行SQL Server 2005企业版
点击右上角即可分享
微信分享提示