链接服务器SQL 2016:无法更新远程服务器中的事务

我有2个Windows服务器EC2位于不同的地区。 他们都拥有公共IP,所以他们可以互相沟通。

为了允许远程查询,我创build了一个链接服务器。 基本上,他们在不同的地区,所以我用他们的公共IP作为数据源。 第一台服务器IP:13.xxx.xxx.xxx第二台服务器IP:52.xxx.xxx.xxx

我testing了连接,它是成功的。 远程查询也正常工作。 例如,从[remote-server-IP] .txtoc.dbo.xhead中更新表格集编号= 0,其中code ='1234'

但是,如果我使用BEGIN TRANSACTION和COMMIT TRANSACTION像这样BEGIN TRANSACTION更新表设置number = 0从[remote-server-IP] .txtoc.dbo.xhead其中code ='1234'COMMIT TRANSACTION

我有错误。 OLE DB提供程序“SQLNCLI11”为链接的服务器“linkedservername”返回消息“没有事务处于活动状态”。 消息7391,级别16,状态2,行2无法执行该操作,因为链接服务器“linkedservername”的OLE DB提供程序“SQLNCLI11”无法启动分布式事务。

我尝试了很多方法 – 从组件服务启用两个服务器上的分发事务 – 允许它们通过Windows防火墙工作 – 允许它们之间的所有通信(在安全组和Windows防火墙中设置)

但他们都没有工作。

任何人都可以点亮这个?