为什么我的 Rebus 处理程序会针对一条 Azure 服务总线消息被多次调用?

Why is my Rebus handler being called multiple times for a single Azure Service Bus message?

我正在使用 Rebus 将消息发送到 Azure 服务总线队列。对于每条消息,我的消费者的处理程序方法似乎都被调用了多次。 Received. 被写入 9 个单独的日志文件。

制作人:

await _bus.Advanced.Routing.Send("some-queue", new SomeMessage());

消费者:

public class SomeMessageHandler : IHandleMessages<SomeMessage>
{
    public async Task Handle(SomeMessage message)
    {
        _logger.Information("Received.");

        await SomeApiCall();
    }
}

消费者配置:

builder.RegisterRebus((configurer, context) => configurer
    .Logging(l => l.Serilog())
    .Transport(t => t.UseAzureServiceBus("Endpoint=<redcated>;SharedAccessKeyName=<redacted>;SharedAccessKey=<redacted>", "some-queue")));

该方法引发了未处理的异常。 Rebus 正在尝试 re-process 它,因为它出错了。

添加异常处理允许方法完成。现在处理程序只按预期调用一次。