首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure队列:无法读取云队列消息。AsString和AsBytes属性正在抛出System.ArgumentException

Azure队列:无法读取云队列消息。AsString和AsBytes属性正在抛出System.ArgumentException
EN

Stack Overflow用户
提问于 2020-07-15 15:26:01
回答 2查看 888关注 0票数 0

好的,我有一个用于管理Azure云队列消息的类,插入运行得很好:

代码语言:javascript
复制
    public async void Insert(string message)
    {
        await Queue.AddMessageAsync(new CloudQueueMessage(message));
    }

注意,这个Queue是一个CloudQueue实例。

这是使用上述方法插入存储中的消息。

但是,当试图获取Peek消息时,一种奇怪的行为正在发生,我无法阅读任何内容:

消息的内容正在抛出异常,并以null的形式返回。

这是messageCount值。

以下是用于检索消息的文本方法:

代码语言:javascript
复制
    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)中使用队列的方法是记录在这里

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-15 15:56:43

我相信它与错误的(遗留的) Nuget套餐有关。最近我遇到了这样一个问题,当我升级到以下软件包时,这个问题得到了解决:

代码语言:javascript
复制
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/

票数 2
EN

Stack Overflow用户

发布于 2020-07-23 06:41:36

我也面临着这个问题。你应该更新你所有的软件包到他们的最新版本,它将运行良好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62918338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档