У меня есть настройка сообщения запроса-ответа с использованием следующего:
public class StatusUpdateRequestConsumer : IConsumer<StatusUpdateRequest>
{
private readonly IWmiService _wmiService;
public StatusUpdateRequestConsumer(IWmiService wmiService)
{
_wmiService = wmiService;
}
public async Task Consume(ConsumeContext<StatusUpdateRequest> context)
{
var bios = _wmiService.GetBios();
await context.RespondAsync<StatusUpdateResponse>(
new StatusUpdateResponse()
{
// This line works fine and message is sent back instantly
Message = JsonConvert.SerializeObject(bios) //,
// Sending the actual object instead of a JSON
// representation as so doesn't work
// Bios = bios
}
);
}
}
При отправке строки, выполнив JsonConvert.SerializeObject () на моем объекте и отправив результат - сообщение получено мгновенно и все работает хорошо.
Когда я пытаюсь отправить сообщение с самим фактическим объектом (bios в приведенном выше примере), ответ никогда не принимается, но не выдается никаких исключений или ошибок.
Я думал, что MassTransit просто сериализует в JSON таким же образом перед отправкой сообщения, у кого-нибудь есть идеи, почему это не сработает - или какие-либо другие способы устранения неполадок, которые я могу применить, чтобы попытаться найти сообщение об ошибке, если таковое имеется?
Я попытался добавить IConsumer<Fault<StatusUpdateRequest>>
и IConsumer<Fault<StatusUpdateResponse>>
, но они не были вызваны.