c# - 如何在transactionscope中调用azure服务总线

标签 c# azure azureservicebus masstransit

当我在 Azure 服务总线上调用 MassTransit.Publish 时,出现异常,因为该调用位于 TransactionScope 中。

The feature 'Transaction' is not supported with the current configuration

如何在事务范围内、无事务模式的总线上发送消息? 我不需要总线事务,而只想数据库事务。

谢谢。

最佳答案

交易完成后,您可以使用内存发件箱进行发送。

cfg.ReceiveEndpoint(host, "my-queue", e =>
{
    e.UseInMemoryOutbox();
    e.Consumer<MyConsumer>(...);
});

对于配置,顺序很重要,因此如果您使用重试或其他中间件组件,它应该位于配置中的内存发件箱之前。您的消费者应该关注所有中间件组件。

关于c# - 如何在transactionscope中调用azure服务总线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44128923/

相关文章:

c# - 什么时候不要使用 'this' 关键字?

c# - nservicebus 中的处理程序发现是如何完成的?

c# - 请批评我的课

c# - 是否可以从第 3 方应用程序执行对 Azure App Insight 的查询

c# - 对 .Net 6 隔离工作线程 ServiceBusTriggers 的消息执行 MessageActions

c# - 在 Task 中等待后代码的执行上下文

azure - 我们如何获取 Azure Function App 的租户 ID、客户端 ID 和客户端 key ?

azure - 用不同的条形图渲染图表

Azure服务总线: Renew message lock token in Logic App

Azure 推送通知随机工作