c# - 我可以使用 Azure 存储队列中的 Response<SendReceipt> 验证消息是否已成功发送

标签 c# azure asp.net-core-3.1 azure-storage-queues

我正在使用 Azure 存储队列客户端发送 Base 64 编码的字符串消息。非常直接的用法。我有以下代码片段:


            var options = new QueueClientOptions
            {
                MessageEncoding = QueueMessageEncoding.Base64
            };

            var _queueClient = new QueueClient(settings.Value.ConnectionString, settings.Value.Name, options);
            var message = JsonConvert.SerializeObject(messageObject, jsonSetting);

         _queueClient.SendMessageAsync(message);

我知道SendMessageAsync( . . .)返回Response<SendReceipt>如何使用它来验证消息是否发送成功? SendReceiptMessageIdInsetionTime属性,但文档没有指定如果未发送消息,这些属性会发生什么情况。队列是否只是返回空收据或具有默认值的对象?

最佳答案

当您尝试使用 SendMessageAsync 向队列发送消息时如果由于某种原因未发送消息,则会引发异常。您不会在 Response<SendReceipt> 中收到任何内容.

您需要包装您的 await _queueClient.SendMessageAsync(message);在 try/catch block 中。如果没有引发异常,则意味着消息发送成功。

关于c# - 我可以使用 Azure 存储队列中的 Response<SendReceipt> 验证消息是否已成功发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71441777/

相关文章:

c# - sql异步查询问题

c# - 在 C# 中对字符串进行排序

azure 二头肌 : for-loop in variable definition not possible?

c# - 为什么 web.config 是在发布时创建的,而不是在 Asp.Net Core API 中构建项目时创建的?

smtp - 需要在 IIS 上为 ASP.Net Core 身份服务器配置 SMTP 设置以进行电子邮件验证

c# - 在 ASP.NET Core 3.1 中处理多环境的 CORS 策略

c# - 在 WinForms 中从 C# 属性生成 GUI 的技巧

c# - Visual Studio C#、WPF 控件

Azure DevOps 服务 - CI/CD

Azure VM 负载平衡与流量管理器