我正在使用 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>
如何使用它来验证消息是否发送成功?
SendReceipt
有MessageId
和InsetionTime
属性,但文档没有指定如果未发送消息,这些属性会发生什么情况。队列是否只是返回空收据或具有默认值的对象?
最佳答案
当您尝试使用 SendMessageAsync
向队列发送消息时如果由于某种原因未发送消息,则会引发异常。您不会在 Response<SendReceipt>
中收到任何内容.
您需要包装您的 await _queueClient.SendMessageAsync(message);
在 try/catch block 中。如果没有引发异常,则意味着消息发送成功。
关于c# - 我可以使用 Azure 存储队列中的 Response<SendReceipt> 验证消息是否已成功发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71441777/