使用 Voron 存储在 RavenDB 中禁用 DTC 跟踪

Disable DTC tracking in RavenDB with Voron storage

我们正在尝试在我们当前的 NLog 使用中使用 RavenDB 作为日志目标。我们创建了一个新的 RavenDB 服务器和一个使用 Voron 作为存储引擎的数据库。然后这只是更新我们的 nlog 配置的问题,我们做到了。

有一段时间,一切都很好,但后来我们遇到了在数据库事务中调用 Trace() 的情况。将 ravenDB 设置为日志目标,这意味着 SaveChanges() 调用也在事务中进行。

一切都很好,直到我们调用 Transaction.Commit()。 RavenDB 在那一点上抛出一个 500 服务器错误,因为 Voron 引擎不支持 DTC(据我所知,它将在所有地方被删除)。我对此很好。我不是特别在意 - 无论如何,写入日志不应该是事务的一部分,因为如果出现问题,我们不想删除相关的日志条目。

我搜索了文档,希望找到一个我可以设置的配置选项,它只会告诉 RavenDB 忽略事务,或者至少忽略 DTC,但我找不到任何东西。无论如何我可以让它停止抛出这 500 个服务器错误吗?

在文档存储上设置EnlistInDistributedTransactions = false,它将为您工作