【问题标题】:Azure ServiceBus Queue save and read File byte[]Azure ServiceBus 队列保存和读取文件字节[]
【发布时间】:2015-09-20 01:37:08
【问题描述】:

我正在尝试将 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();

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

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

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

谢谢。

【问题讨论】:

    标签: c# azure azureservicebus


    【解决方案1】:

    您应该通过将消息正文反序列化为byte[] 来完成此操作:

    // Process message from queue
    Console.WriteLine("Body: " + messageReceivedEventArgs.BrokeredMessage.GetBody<byte[]>());
    

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

    【讨论】:

    • 这真的很简单。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    相关资源
    最近更新 更多