Azure ServiceBus队列保存和读取文件字节[]
本文关键字:文件 字节 读取 ServiceBus 队列 保存 Azure | 更新日期: 2023-09-27 18:00:46
我正在字符串中将File byte[]存储到Azure ServiceBusQueue并从Queue中读取。
这是我将文件存储到队列的代码。
var uploadedFile = new Byte[FileUpload1.PostedFile.InputStream.Length];
FileUpload1.PostedFile.InputStream.Read(uploadedFile, 0, FileUpload1.PostedFile.ContentLength);
var message = Utility.CreateBrokeredMessage(uploadedFile);
var senderQueue = new QueueSender("tasksnotifications");
if (senderQueue.SendMessage(message))
{
ResultText = "Your message has been submitted successfully";
MessageTextBox.Text = string.Empty;
}
else
{
ResultText = "Your message is not submitted.";
}
这是从队列中读取消息的代码。
// Process message from queue
Console.WriteLine("Body: " + messageReceivedEventArgs.BrokeredMessage.GetBody<object>());
Console.WriteLine("MessageID: " + messageReceivedEventArgs.BrokeredMessage.MessageId);
// Remove message from queue
messageReceivedEventArgs.BrokeredMessage.Complete();
我不确定是否可以将文件的字节[]存储到Azure ServiceBus队列,但数据已成功发送。
问题:如何从从队列接收的BrokeredMessage对象中读取字节[]?
请分享与此主题有关的任何有用链接,或者如果在某个地方已经问过此问题。
谢谢。
您应该通过将消息体反序列化为byte[]
:来实现这一点
// Process message from queue
Console.WriteLine("Body: " + messageReceivedEventArgs.BrokeredMessage.GetBody<byte[]>());
请注意,服务总线消息的最大大小为256 KB。另请参阅服务总线配额。