【问题标题】:Step out of a distributed transaction for one of my Entity Framework ObjectContexts退出我的一个实体框架 ObjectContexts 的分布式事务
【发布时间】:2012-03-15 15:38:28
【问题描述】:

我将 NServiceBus 与分布式事务一起使用。通常这非常有效。我的消息要么成功,要么失败。全有或全无。

但是,我也在尝试将诊断数据记录到我的数据库中。这是在单独的 ObjectContext 上完成的。为此,无论分布式事务的成功或失败,我都希望它保存到数据库中。

有没有办法让一个(并且只有一个)数据上下文连接到分布式事务之外的数据库? (并将其余的留在里面?)

【问题讨论】:

  • 你能简单地在 Tx 范围之外(之前)实例化它吗?

标签: c# .net entity-framework transactions nservicebus


【解决方案1】:

试试这个来抑制你的环境分布式事务进行审计:

using (new TransactionScope(TransactionScopeOption.Suppress))
{
    // Create logging context and audit your data
}

【讨论】:

    【解决方案2】:

    一个选项(如果使用3.0)是创建一个UoW:

    http://andreasohlund.net/2011/11/21/unit-of-work-in-nservicebus-3-0/

    并在那里抑制事务并进行日志记录。

    【讨论】:

      【解决方案3】:

      NSB 有一个内置的方法来处理auditing。我建议打开它并处理另一个端点中的日志记录/审计跟踪。

      【讨论】:

        猜你喜欢
        • 2014-12-28
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        • 2015-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多