MessageReceiver.ReceiveBatch()未按预期工作

我试图使用MessageReceiver中的ReceiveBatch方法从ServiceBus批量接收消息:

IEnumerable messages; var messagingfactory = MessagingFactory.CreateFromConnectionString("ConnectionString"); var msgrcvr = messagingfactory.CreateMessageReceiver("queueName", ReceiveMode.ReceiveAndDelete); messages = msgrcvr.ReceiveBatch(20, timeoutInSecs); 

我已经使用Service Bus Explorer检查了我的队列包含20条消息。

此代码仅在消息结构中返回一条消息。 我遗失了一些财产吗?

这只是部分答案或解决方法; 以下代码可靠地获取所有元素,但不使用“ReceiveBatch”; 请注意,据我所知,Peek(i)以单一指数运作。 另外:根据运行的服务器,如果您通过消息提取费用,这可能(或可能不)更昂贵,因此使用风险由您自行承担:

  List dlIE = new List(); BrokeredMessage potentialMessage = null; int loopCount = 1; while ((potentialMessage = deadletterSubscriptionClient.Peek(loopCount)) != null) { dlIE.Add(potentialMessage); loopCount++; }