首页 > 解决方案 > C#核心无法从sqs中删除消息

问题描述

我正在使用带有 aws sdk 的 .net 核心,能够读取消息,但之后它没有被删除,注意 - 默认可见性超时设置为 1 分钟,操作在 sec 内完成,但仍未被删除。看看代码 -

        string qurl = "xxxxxx";
            Task<ReceiveMessageResponse> receiveMessageResponse;
            using (var sqs = new AmazonSQSClient("xxxx", "xxxxx", xxxxx))
            {
                const int maxMessages = 1;  // 1-10

                //Receiving a message
                var receiveMessageRequest = new ReceiveMessageRequest
                {
                    // Get URL from Configuration
                    QueueUrl = qurl,
                    // The maximum number of messages to return. 
                    // Fewer messages might be returned. 
                    MaxNumberOfMessages = maxMessages,
                    // A list of attributes that need to be returned with message.
                    AttributeNames = new List<string> { "All" },
                    // Enable long polling. 
                    // Time to wait for message to arrive on queue.
                };
                receiveMessageResponse = sqs.ReceiveMessageAsync(receiveMessageRequest);


                if (receiveMessageResponse.Result.Messages != null)
                {
                    foreach (var message in receiveMessageResponse.Result.Messages)
                    {

                        Class1 obj = new Class1();
                       string finalname= obj.fnprocess(message.Body);
                        Console.WriteLine(finalname);
                        var res = message.ReceiptHandle;

                        Task<DeleteMessageResponse> DeleteMessageResponse;
                        DeleteMessageRequest deleteMessageRequest = new DeleteMessageRequest()
                        {
                            QueueUrl = qurl,
                            ReceiptHandle = res
                        };

                        DeleteMessageResponse = sqs.DeleteMessageAsync(deleteMessageRequest);



                    }

                }
            }

请求响应如下在此处输入图像描述

任何建议我做错了什么。

标签: c#amazon-web-servicesamazon-sqs

解决方案


嗨,实际上问题出在密钥上,将代码更改为

var result = sqs.DeleteMessageAsync(deleteMessageRequest).Result;

为了捕捉错误,现在它的工作。


推荐阅读