来自请求客户端的公共交通不一致异常

Masstransit inconsistent exception from request client

我正在使用请求客户端向我的消费者发送同步请求,但在我的消费者中我抛出了一个异常。

我的代码如下所示

var client = Bus.CreateRequestClient<TRequest, TResponse>(uri, Timeout);
try
{
   var response = await client.Request(request);
}
Catch(Exception e)
{
   //log
}

问题是如果我快速连续地重复请求,有时我会在 RequestFaultException 中捕捉到消费者抛出的真正异常,有时我会捕捉到 MassTransit.RequestCanceledException。我确定它不是由超时引起的,因为它设置为很长的时间跨度(30 秒)。我做错了什么吗?

堆栈跟踪:

MassTransit.RequestCanceledException: The request was canceled, RequestId: 00240000-ac12-0242-0947-08d7b68e88f0 ---> System.OperationCanceledException: The operation was canceled. at MassTransit.Internals.Extensions.TaskExtensions.WithCancellation(Task task, CancellationToken cancellationToken) at MassTransit.RabbitMqTransport.Transport.RabbitMqSendTransport.SendPipe1.Send(ModelContext modelContext) at MassTransit.RabbitMqTransport.Transport.RabbitMqSendTransport.SendPipe1.Send(ModelContext modelContext) at GreenPipes.Agents.PipeContextSupervisor1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe1 pipe, CancellationToken cancellationToken) at GreenPipes.Agents.PipeContextSupervisor1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe1 pipe, CancellationToken cancellationToken) at GreenPipes.Agents.PipeContextSupervisor1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe1 pipe, CancellationToken cancellationToken) at MassTransit.Clients.SendRequestSendEndpoint1.Send(T message, IPipe1 pipe, CancellationToken cancellationToken) at MassTransit.Clients.ClientRequestHandle1.SendRequest() --- End of inner exception stack trace --- at MassTransit.Clients.ClientRequestHandle1.SendRequest() at MassTransit.Clients.ResponseHandlerConnectHandle1.GetTask() at MassTransit.MessageRequestClient2.Request(TRequest request, CancellationToken cancellationToken)

根据 Chris Patterson 的说法,我使用的是 5.5,此问题已在 v6.2 中修复。