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。
我正在尝试将文件字节 [] 存储到 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。