Azure 队列:无法读取云队列消息。 AsString 和 AsBytes 属性正在抛出 System.ArgumentException
Azure Queue: Unable to read cloud queue messages. AsString and AsBytes properties are throwing System.ArgumentException
好的,我有一个 class 用于管理 Azure 云队列消息, 插入 工作正常:
public async void Insert(string message)
{
await Queue.AddMessageAsync(new CloudQueueMessage(message));
}
请注意,此 Queue
是一个 CloudQueue
实例。
这是使用上述方法插入到存储中的消息
但是,在尝试 Get 或 Peek 消息时,发生了奇怪的行为,我无法阅读任何内容:
消息内容抛出异常,返回为 null。
这是 messageCount
值。
这是文本,用于检索消息的方法:
public async Task<List<string>> GetMessages()
{
var list = new List<string>();
await Queue.FetchAttributesAsync();
int messageCount = Queue.ApproximateMessageCount ?? 0;
if (messageCount == 0) return list;
foreach (var msg in await Queue.GetMessagesAsync(messageCount))
{
list.Add(msg.AsString);
}
return list;
}
编辑: 我按照批准的答案中的指示进行了检查,发现我使用的是已弃用的软件包,该软件包似乎不再有效。
此库已拆分为多个部分并已弃用。
我不得不使用最新的 API 并更改我的代码,它实际上更容易使用,但需要进行一定的返工。现在可以使用了,在这个新版本(.NET v12)中使用队列的方式是documented here.
我认为这与错误的(遗留)Nuget 包有关。我最近遇到了这样的问题,当我升级到以下软件包后问题就解决了:
Install-Package Microsoft.Azure.Storage.Common -Version 11.1.7
Install-Package Microsoft.Azure.Storage.Queue -Version 11.1.7
https://www.nuget.org/packages/Microsoft.Azure.Storage.Queue/
https://www.nuget.org/packages/Microsoft.Azure.Storage.Common/
我也遇到了这个问题。您应该将所有软件包更新到最新版本,它会正常工作。
好的,我有一个 class 用于管理 Azure 云队列消息, 插入 工作正常:
public async void Insert(string message)
{
await Queue.AddMessageAsync(new CloudQueueMessage(message));
}
请注意,此 Queue
是一个 CloudQueue
实例。
这是使用上述方法插入到存储中的消息
但是,在尝试 Get 或 Peek 消息时,发生了奇怪的行为,我无法阅读任何内容:
消息内容抛出异常,返回为 null。
这是 messageCount
值。
这是文本,用于检索消息的方法:
public async Task<List<string>> GetMessages()
{
var list = new List<string>();
await Queue.FetchAttributesAsync();
int messageCount = Queue.ApproximateMessageCount ?? 0;
if (messageCount == 0) return list;
foreach (var msg in await Queue.GetMessagesAsync(messageCount))
{
list.Add(msg.AsString);
}
return list;
}
编辑: 我按照批准的答案中的指示进行了检查,发现我使用的是已弃用的软件包,该软件包似乎不再有效。
我不得不使用最新的 API 并更改我的代码,它实际上更容易使用,但需要进行一定的返工。现在可以使用了,在这个新版本(.NET v12)中使用队列的方式是documented here.
我认为这与错误的(遗留)Nuget 包有关。我最近遇到了这样的问题,当我升级到以下软件包后问题就解决了:
Install-Package Microsoft.Azure.Storage.Common -Version 11.1.7
Install-Package Microsoft.Azure.Storage.Queue -Version 11.1.7
https://www.nuget.org/packages/Microsoft.Azure.Storage.Queue/
https://www.nuget.org/packages/Microsoft.Azure.Storage.Common/
我也遇到了这个问题。您应该将所有软件包更新到最新版本,它会正常工作。