MassTransit Publisher没有引发异常

问题描述 投票:0回答:1

我有一个用Asp.Net Web API开发的MassTransit生产者/发布者。

生产者只是将消息发送到Exchange->队列。

public async Task<bool> AddToQueue(int msgId, Message message)
{
     var endpoint = await _bus.GetSendEndpoint(new Uri("exchange:testExchange?bind=true&queue=MessageQueue"));
     await endpoint.Send(new Message()
     {
         Id = msgId,
         Text = message.Text
     });
     return true;
}

但是,例如,如果找不到队列或绑定存在问题,以上内容将不会返回任何异常(即使我已经进行了某种处理)。消息只会丢失而不会创建任何迹象错误队列?

我知道如果找不到一个队列,它将创建一个队列,但是请确保消息代理与生产者之间是否存在问题,您将如何处理?

c# rabbitmq masstransit
1个回答
0
投票

要从任务操作中获取异常,您需要将方法执行的结果分配给Task变量,如下所示:

Task<bool> myTask = AddToQueue(42, "Some message");

然后您可以从Task的Exception属性获取异常:

if (myTask.Exception != null) 
    Console.WriteLine(myTask.Exception.InnerException.Message);
© www.soinside.com 2019 - 2024. All rights reserved.