首页 > 解决方案 > 如何将 Rebus 数据总线附件与 Rebus.Async 回复一起使用

问题描述

Rebus.Async用来发送请求。收到后,消费者会回复大量数据,并使用Rebus.AzureBlobs.

发件人收到回复并尝试阅读附件。发生这种情况时,Rebus 会抛出异常:

没有可用的消息上下文 - 您是否尝试打开数据总线附件以读取消息处理程序的 OUTSIDE?

当然,我故意在消息处理程序之外打开附件,因为我使用的是Rebus.Async. 但是,这似乎不受支持。

有没有办法让数据总线与Rebus.Async回复一起工作?

标签: c#.net-corerebusrebus-azureservicebus

解决方案


您应该能够简单地传递附件 ID(返回 from的Id属性),然后您可以DataBusAttachmentCreateAttachment

var dataBus = bus.Advanced.DataBus;

using (var source = await dataBus.OpenRead(attachmentId))
{
    // do your thing :)
}

推荐阅读