在Azure Service Bus上使用Rebus 2进行审核

时间:2016-01-22 09:57:51

标签: azure rebus

我的代码中有这样的东西

bus =  Configure.With(activator)
                .Options(o => o.SimpleRetryStrategy(errorQueueAddress: configuration.GetStringSettings("ErrorQueue")))
                .Routing(r => r.TypeBased().Map<MyMessage>("endpointQueueName"))
                .Transport(a => a.UseAzureServiceBus(configuration.GetStringSettings("AzureConnectionString"), configuration.GetStringSettings("InputQueueAddress"), Rebus.AzureServiceBus.Config.AzureServiceBusMode.Standard))
                .Options(o => o.EnableMessageAuditing("auditQueueName"))
                .Start();
...

bus.Send(message);

假设我的azure服务总线命名空间中存在“endpointQueueName”和“auditQueueName”。当我发送MyMessage类型的消息时,我希望在“endpointQueueName”队列和“auditQueueName”队列中找到它,但这不会发生。我只在“endpointQueueName”队列中找到它。

为什么呢?

我在配置上做错了什么?

1 个答案:

答案 0 :(得分:1)

您正在观察正确的行为:)

the Message Auditing documentation中所述,消息在消息消失之前被复制到审核队列 ,即

  • 处理消息时
  • 发布消息时(因为它可以发布给0个订阅者 - Rebus无法知道)

因此,如果您的处理程序(必须也配置了消息审核)正确处理消息,您应该在审核队列中看到一个副本(带有一些额外的标题)。

我希望这更清楚:)