Azure ServiceBus 队列保存和读取文件 byte[]

Azure ServiceBus Queue save and read File byte[]

我正在尝试将文件字节 [] 存储到 Azure ServiceBusQueue 并从队列中读回它。

这是我将文件存储到队列的代码。

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();

我不确定是否可以将文件的 byte[] 存储到 Azure ServiceBus Queue,但数据已成功发送。

问题: 如何从从 Queue 收到的 BrokeredMessage 对象中读取 byte[]?

请分享与此主题有关的任何有用链接,或者如果此问题已在某处提出。

谢谢。

您应该通过将消息正文反序列化为 byte[]:

来完成此操作
// Process message from queue
Console.WriteLine("Body: " + messageReceivedEventArgs.BrokeredMessage.GetBody<byte[]>());

请注意,服务总线消息的最大大小为 256 KB。另见 Service Bus Quotas