经过 5 个小时的尝试,我认为我的 Azure 帐户有问题,当时不允许我使用多个队列。
我首先创建两个队列,当然有两个小写的名称,然后检查它们是否存在,并检查它们的 uri 名称,看起来很好。
然后我开始向我的第一个队列添加一条消息,这工作正常,如果我检查队列有多少条消息,它会给我一个大于 0 的数字。
然后我重复完全相同的步骤将消息添加到我的第二个队列,但是这次当我尝试检查消息的计数时,它甚至没有说 0,它抛出 null。
如果我使用第二个队列中的 getMessage() ,它也会返回一条空消息,这意味着我添加的所有消息实际上都不会进入我的第二个队列中的存储。
这取决于帐户有什么限制吗?我是否必须在 azure 上设置一些不同的东西,以便我可以让多个队列分区同时工作?
提前谢谢你的回复。。
编辑
我在 WCF 中的一流定义为:
private static CloudQueue processedqueue;
private static CloudQueue notprocessedqueue;
这是我的 InitializeStorage 方法:
var queue1 = account.CreateCloudQueueClient();
notprocessedqueue = queue1.GetQueueReference("notprocessedqueue");
notprocessedqueue.CreateIfNotExist();
var queue2 = account.CreateCloudQueueClient();
processedqueue = queue2.GetQueueReference("processedqueue");
processedqueue.CreateIfNotExist();
//I have tried using queue1 to get the reference of both queues but is the same result
负责填充队列的方法:
var message = new CloudQueueMessage(string.Format("{0},{1}", pWord, processed.ToString()));
var message2 = new CloudQueueMessage(string.Format("{0},{1}", pWord, processed.ToString()));
processedqueue.AddMessage(message);
notprocessedqueue.AddMessage(message2);
processedqueue.Exists() <- Returns true
processedqueue.Uri.ToString() <- returns a proper URL with the name I defined in the getReference method
notprocessedqueue.Exists() <- Retruns true
notprocessedqueue.Uri.ToString() <- returns a proper URL with the name I defined in the getReference method
执行 addMessage 方法后,我尝试以下操作:
processedqueue.ApproximateMessageCount <- returns 1
notprocessedqueue.ApproximateMessageCount <- returns null