当我在服务总线 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>(...);
});
对于配置,顺序很重要,因此如果您使用的是重试或其他中间件组件,它应该在配置中的内存发件箱之前。您的消费者应该毕竟是中间件组件。