首页 > 解决方案 > Azure 服务总线“奇怪的行为”

问题描述

我遇到了一个非常奇怪的行为,我似乎无法理解或使用 Azure 服务总线解决。我设置了一个队列并向其发送 1 条消息。我可以看到消息存在于队列中。

在此处输入图像描述

然后我尝试使用 ReceiveAsync() 方法读取消息,但始终返回 NULL。但是如果我使用 PeekAsync() 方法,我可以看到有一条消息,我可以获取并使用它。但是由于没有使用 PeekAsync() 方法生成任何 LockToken,我无法在使用 CompleteAsync() 方法之后将其删除(这不会解决问题,但至少可以使我的代码正常工作)。

在此处输入图像描述

有没有人遇到过这样的事情?我在某处读到有人在队列上使用分区时遇到了类似的问题,但我不这样做。

最好的问候马格努斯

标签: azureservicebusazure-servicebus-queues

解决方案


我发现了这个问题。

有一个逻辑应用程序尝试从同一服务总线读取消息,但是当逻辑应用程序读取消息时读取失败。

而我的猜测是,逻辑应用程序读取消息并失败,然后消息被“隐藏”以供其他读者阅读相同的消息,但可以偷看消息。

因此,当我关闭逻辑应用程序时,我的代码可以使用 receiveAsync() 方法来获取消息。


推荐阅读