C# Windows Azure队列GetMessage返回null

C# Windows Azure队列GetMessage返回null,c#,azure,azure-storage,azure-queues,C#,Azure,Azure Storage,Azure Queues,我有一个Microsoft Azure CloudQueue队列。我使用queue.GetMessage从队列中检索消息,但它返回null 我按如下方式初始化队列: var setting = CloudConfigurationManager.GetSetting("DataConnectionString"); var storageAccount = CloudStorageAccount.Parse(setting); var queueClient = storageAccount.C

我有一个Microsoft Azure CloudQueue队列。我使用
queue.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

我很困惑。我在中没有代码,但在这个方法中有此代码。但每次我检索到的消息都是空的


有什么想法吗

入门的另一个选择是从绝对有效的代码开始,然后我们可以反向工作。安装最新的Azure SDK(2.5),它将直接在VS.From VS.select File/New/Project/Cloud/Azure存储队列中安装一些快速启动。然后更新app.config文件以指向您的服务帐户。确认这是有效的。然后是您的代码或其他一些环境问题(多个读卡器等)

这太奇怪了!当没有要排队的消息时,您将得到null。您正在使用哪个版本的存储客户端库?这是针对云存储帐户还是本地存储帐户(仿真器版本)?我使用的是Windows Azure 2.2版,所以Microsoft.VindowsAzure.storage 3.0.3.0版,Windows Azure仿真器是2.2版。但是值得一提的是,我在从1.7版升级WindowsAzure之后出现了这个bug。升级时我采用了一些代码。但是除了这个我没有其他问题。托管代码的角色是单实例的吗?因为如果将其配置为具有2个或多个实例,则可能是其中一个实例访问了queue.GetMessage,然后您才在您正在dubugging的实例中访问它。是。你是对的。我有一个暂存,在本地版本执行此操作之前提取队列的所有消息。因此,我将配置更改为使用Storage Emulator。但需要使用Emulator 2.2.1预览版。