【问题标题】:the promote method returned an invalid value for the distributed transaction only in azure提升方法仅在 azure 中为分布式事务返回了无效值
【发布时间】:2015-04-12 15:10:37
【问题描述】:

我正在使用 Azure Web App 来托管网站

使用 asp.net,使用托管在 azure vm 上的 vb.net 和 sql server

一个奇怪的错误“promote 方法为分布式事务返回了一个无效值”,并且网络上的信息很少。

我在交易范围

使用它

MainMethod 调用 MethodA 和 MethodB 包裹在 transactionscope 中,每个方法都进一步使用 交易范围单独。

我没有在本地运行时出错。

我仅在 Azure Web 应用服务中收到此错误。

非常欢迎任何建议。

【问题讨论】:

    标签: asp.net linq sql-server-2008 azure-web-app-service


    【解决方案1】:

    该错误表明您的事务被提升为分布式事务。分布式事务依赖于 MSDTC,它在内部使用 DCOM 协议,而 DCOM 在 Azure Webapps 中不起作用。如果您在同一个 TransactionScope 中打开多个连接 (Connection.open),则 LTM(轻量级事务)将被提升为分布式事务。

    您可以确保在 transactionscope 中只打开一个 sqlconnection,或者尝试更改代码以使用 SqlTransactions 而不是 TransactionScope 或分布式事务。在一些文章中还提到,如果您在连接字符串中使用ENLIST=FALSE,则不会发生提升到 MSDTC,但如果在同一事务范围内打开多个连接,则不确定这是否是可行的解决方案。

    也看看这些

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 2014-09-19
      • 2011-11-20
      • 2015-07-02
      • 1970-01-01
      相关资源
      最近更新 更多