.net SSIS错误代码DTS_E_无法从ConnectionManager获取分布式事务的重新连接

.net SSIS错误代码DTS_E_无法从ConnectionManager获取分布式事务的重新连接,.net,sql-server,ssis,distributed-transactions,msdtc,.net,Sql Server,Ssis,Distributed Transactions,Msdtc,我正在尝试将序列容器中的数据流任务从SourceDb(存在于我的本地计算机上)设置为TargetDb(存在于azure上,可从SSMS访问)。 每当我根据需要运行带有事务的包时,就会出现以下错误 错误:SSIS错误代码DTS\u E\u无法从ConnectionManager获取重新连接。对连接管理器“TargetDb”的AcquireConnection方法调用失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多

我正在尝试将序列容器中的数据流任务从SourceDb(存在于我的本地计算机上)设置为TargetDb(存在于azure上,可从SSMS访问)。 每当我根据需要运行带有事务的包时,就会出现以下错误

错误:SSIS错误代码DTS\u E\u无法从ConnectionManager获取重新连接。对连接管理器“TargetDb”的AcquireConnection方法调用失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。

如果我删除该容器的事务,它就会工作。我已正确设置了所有分布式事务设置。我通过了许多关于堆栈溢出的链接,但没有任何东西对我有效。请提出解决办法


我还通过在本地计算机上恢复两个db来尝试此过程。它成功地处理了事务。这个包裹没有问题

要在SSI中使用事务,您需要打开分布式事务协调器。另一种方法是在执行sql任务中使用begin Transaction,并在控制流中的连接属性集合retainsameconnection=True中使用begin Transaction,所有需要在Transaction中的dft任务都将在此之后执行,最后一个任务将是另一个具有commit Transaction的执行sql任务。 按照下面的链接使用事务,而不切换到分布式事务-
Azure无法参与AFAIK本地SQL Server的事务

限制 以下限制目前适用于SQL DB中的弹性数据库事务:

  • 仅支持SQL DB中跨数据库的事务。其他X/Open SQL DB之外的XA资源提供程序和数据库无法 参与弹性数据库事务。这意味着有弹性 数据库事务不能跨本地SQL Server和 Azure SQL数据库。对于本地分布式事务, 继续使用MSDTC
  • 仅支持来自.NET应用程序的客户端协调事务。服务器端对T-SQL的支持,如BEGIN分布式 事务已计划,但尚未可用
  • 不支持跨WCF服务的事务。例如,您有一个执行事务的WCF服务方法。包围 事务作用域内的调用将失败 System.ServiceModel.ProtocolException
有关分布式事务和Azure的完整讨论,请参阅。

不幸的是,DTC(由MSDTC服务控制)无法在Azure上使用。