如何使用 Rebus.Async 回复的 Rebus 数据总线附件

How to use Rebus data bus attachments with Rebus.Async replies

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

将这些数据上传到 Azure Blob 存储

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

No message context is available - did you try to open a data bus attachment for reading OUTSIDE of a message handler?

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

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

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

var dataBus = bus.Advanced.DataBus;

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