2013-05-08 24 views
0

我正在使用Service Bus Queue将项目从生产者传递给使用者。生产者能够成功地将项目发送到队列并且消费者正确地接收,但是然后它显示奇怪的行为,其中即使队列具有数千条消息,接收方法返回null(没有错误)中介消息。我的队列有什么问题?服务总线QueueClient返回null中介消息偶数队列中有数千条消息

这里要提到的一件事是,在测试中,我在队列上调用了Close()方法。但它只做了一次,并在测试。但是现在我每次运行receive方法都返回null代理消息。

+0

您是否尝试从队列中获取消息,并且在“Close”之前没有对其调用'Complete'或'Abandon'? – 2013-05-08 19:58:31

+0

您如何检测到队列中有成千上万条消息? – 2013-05-08 20:02:42

+0

通过队列描述,当然通过门户 – ZafarYousafi 2013-05-09 09:56:28

回答

2

messageCount可以包含来自子队列的消息,如死信和预定消息。如果你的所有消息已经过期,那么你将不得不创建一个接收器给死信子队列来获取它们。

+0

确实是这个问题。所有队列项目都被延期。我试图通过使用序列号来恢复它们(我必须击中每个从0到10000的数字),但仍有一些项目未被恢复。如果序列号丢失,是否有任何方法可以恢复这些延期项目? – ZafarYousafi 2013-05-09 09:58:27

+0

不幸的是,如果您没有序列号,此时无法恢复延期邮件。蛮力接收的数字与您所看到的数字相同,因为当前序列号将是替代选项。 – 2013-05-09 17:56:31