C# MessageReceiver.ReceiveBatch()未按预期工作

C# MessageReceiver.ReceiveBatch()未按预期工作,c#,.net,azure,servicebus,azure-servicebus-queues,C#,.net,Azure,Servicebus,Azure Servicebus Queues,我正在尝试使用MessageReceiver中的ReceiveBatch方法从ServiceBus批量接收消息: IEnumerable<BrokeredMessage> messages; var messagingfactory = MessagingFactory.CreateFromConnectionString("ConnectionString"); var msgrcvr = messagingfactory.CreateMessageReceiver("queueN

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

IEnumerable<BrokeredMessage> messages;
var messagingfactory = MessagingFactory.CreateFromConnectionString("ConnectionString");
var msgrcvr = messagingfactory.CreateMessageReceiver("queueName", ReceiveMode.ReceiveAndDelete);
messages = msgrcvr.ReceiveBatch(20, timeoutInSecs);
IEnumerable消息;
var messagingfactory=messagingfactory.CreateFromConnectionString(“ConnectionString”);
var msgrcvr=messagingfactory.CreateMessageReceiver(“queueName”,ReceiveMode.ReceiveAndDelete);
messages=msgrcvr.ReceiveBatch(20,timeoutines);
我已经使用服务总线资源管理器检查了我的队列是否包含20条消息


此代码只返回消息结构中的一条消息。我是否缺少某些属性?

这只是一个部分答案或解决方法;以下代码可靠地获取所有元素,但不使用“ReceiveBatch”;请注意,据我所知,Peek(I)是基于一个索引进行操作的。另外:根据运行的服务器的不同,如果您是通过消息拉取付费的,那么这可能(也可能不是)会更昂贵,因此使用时请自行承担风险:

        List<BrokeredMessage> dlIE = new List<BrokeredMessage>();

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

我有一个类似的问题;我收到一个随机数,而不是所有的;请参阅:是否有人知道如何向Microsoft报告此错误;我试过了,但找不到现成的链接……这似乎仍然是个问题。怎么没有任何决议!?我并不知道,若有人对如何直接使用ReceiveBatch有更好的答案,请发帖。同样令人遗憾的是,要以更明显、更简单的方式向微软报告看似真实的bug并不容易!尝试使用GitHub并查找“Microsoft Azure”