Как использовать вложения шины данных Rebus с ответами Rebus.Async - PullRequest
1 голос
/ 21 октября 2019

Я использую Rebus.Async для отправки запроса. После получения потребитель отвечает большим количеством данных, которые он загружает в хранилище BLOB-объектов Azure, используя Rebus.AzureBlobs.

Отправитель получает ответ и пытается прочитать вложение. Когда это происходит, Ребус выдает исключение:

Контекст сообщения недоступен - вы пытались открыть вложение шины данных для чтения ВНЕ обработчика сообщений?

Конечно, я намеренно открываю вложение вне обработчика сообщений, потому что я использую Rebus.Async. Однако, похоже, это не поддерживается.

Есть ли способ заставить шину данных работать с Rebus.Async ответами?

1 Ответ

1 голос
/ 21 октября 2019

Вы должны иметь возможность просто передать идентификатор вложения (свойство Id из DataBusAttachment, возвращенного из CreateAttachment), которое затем вы можете

var dataBus = bus.Advanced.DataBus;

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