SQL Server 链接服务器"XXXXXXX"的 OLE DB 访问接口 "SQLNCLI11" 返回了消息 "没有活动事务。"。

一、确保互联双方服务器MS DTC服务已启动并正确配置

  1. 打开"服务"管理控制台(services.msc)
  2. 找到"Distributed Transaction Coordinator"服务
  3. 确保服务状态为"正在运行"
  4. 将启动类型设置为"自动"

二、配置互联双方服务器MS DTC安全设置

  1. 打开"组件服务"(dcomcnfg)
  2. 展开"组件服务" > "计算机" > "我的电脑" > "Distributed Transaction Coordinator"
  3. 右键点击"本地 DTC",选择"属性"

三、检查防火墙设置

确保以下端口在防火墙中开放:

  1. MS DTC 使用端口 135(RPC 端点映射器)
  2. 动态端口范围(通常为 49152-65535)
  3. 使用telnet工具在客户端上测试连接是否成功

四、配置链接服务器属性

  1. 数据访问
  2. RPC
  3. RPC OUT
  4. 为RPC启用针对分布式事务的升级

配置双方SQL Server服务连接

打开修改数据库属性设置

五、如双方服务器不在同一域下需要配置配置hosts隐藏文件

  1. hosts路径
    C:\Windows\System32\drivers\etc
  2. 配置信息
    对方服务器ip 对方服务器计算机名
    10.10.10.10 WIN-XXXXXXXX

六、测试

-- 测试分布式事务
BEGIN DISTRIBUTED TRANSACTION
-- 在链接服务器上执行一些操作
EXEC LINKServer.master.dbo.sp_executesql N'SELECT 1'
COMMIT TRANSACTION
posted @ 2025-06-25 09:21  马永猛  阅读(484)  评论(0)    收藏  举报