1
我有一個CloudQueue的Windows Azure隊列。我使用queue.GetMessage
從隊列中檢索消息,但它返回null。Windows Azure隊列GetMessage返回null
我初始化我的隊列如下:
var setting = CloudConfigurationManager.GetSetting("DataConnectionString");
var storageAccount = CloudStorageAccount.Parse(setting);
var queueClient = storageAccount.CreateCloudQueueClient();
var queue = queueClient.GetQueueReference(RoleEnvironment.GetConfigurationSettingValue("QueueName"));
queue.CreateIfNotExists();
之後,我添加CloudQueueMessage在該隊列是這樣的:
CloudQueueMessage msg = new CloudQueueMessage(content);
queue.AddMessage(msg);
當我檢查的消息數:
queue.FetchAttributes();
int? count = queue.ApproximateMessageCount; //returns 1
我得到的數量等於1,但是當我試圖得到消息:
var retrievedMsg = queue.GetMessage(); // returns null
我有retrievedMsg
是null
。
我很困惑。在這種方法中,我沒有代碼。但每次我檢索到的消息都是空的。
任何想法?
這很奇怪!當沒有消息要出隊時,你會得到空值。您使用的是哪個版本的存儲客戶端庫?這是針對雲存儲帳戶還是本地存儲帳戶(模擬器版本)? –
我已經使用了Windows Azure版本2.2,所以Microsoft.VindowsAzure.Storage版本3.0.3.0,Windows Azure模擬器版本是2.2。但是要提到的是,我從V1.7升級Windows Azure後出現這個bug。升級時我採用一些代碼。但我沒有其他問題,但這。 –
託管您的代碼的角色是單個實例嗎?如果它被配置爲有2個或更多的實例,它可能就是那個隊列。如果你正在調用的實例中有一個實例到達它,那麼它將被其中一個實例觸及。 –