所以我将一个项目从我的ASP.NET Web API发送到Azure存储队列,我想向用户提供关于他们的项目在队列中的位置的一些反馈,以及能够在他们的物品的位置,如果他们回来或类似的东西。
并不是说它与这里的问题有很多关系,但这是我用来将项目放在队列中的方法
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigHelper.GetAzureStorage());
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("my-queue");
await queue.CreateIfNotExistsAsync();
var messageJson = JsonConvert.SerializeObject(item);
CloudQueueMessage cloudQueueMessage = new CloudQueueMessage(messageJson);
await queue.AddMessageAsync(cloudQueueMessage);
所以我一直在CloudQueueClient
和CloudQueue
,但我发现的只有CloudQueue.ApproximateMessageCount
,它总是返回null。
我还尝试了一些谷歌搜索如何总是出现入门指南,特别注意我如何获得项目的大小和位置,所以它甚至可能吗?
答案 0 :(得分:5)
无法获得队列中项目的位置。
对于大致的邮件计数,您必须在检索值之前调用FetchAttributes
或FetchAttributesAsync
。这将使用队列中的实际值填充ApproximateMessageCount
。