0

经过 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
4

1 回答 1

0

它终于奏效了,我所做的是格式化存储我的解决方案的虚拟硬盘驱动器,然后我在 azure 管理门户中单击“恢复为默认值”,然后我重新启动计算机并重新部署我的解决方案.

它现在就像一个魅力一样工作,显然工人角色不知何故被窃听了。

于 2013-05-02T00:25:00.337 回答