如何 send/Receive ServiceBus 消息中的数据 header

How to send/Receive data in ServiceBus message header

我正在使用 Azure 函数从服务总线发送和接收消息。我想在服务总线消息 header 中发送和接收 correlationId 以跟踪消息生命周期。

我从 ServiceBusExplore 发送第一个 JSON 负载,并获取文本如果使用 BrokeredMessage

的字符串

收件人代码

public static async Task RunAsync([ServiceBusTrigger("validate-trade", AccessRights.Manage,
        Connection = "ServiceBusConnection")]BrokeredMessage message,
        TraceWriter log)
    {
        string queueData = message.GetBody<string>();
}

低于错误

'message.GetBody<string>()' threw an exception of type 'System.Runtime.Serialization.SerializationException'    string {System.Runtime.Serialization.SerializationException}

我也试过了

string s = receiveMessage.GetBody<string>(new DataContractSerializer(typeof(string)))

这应该是将任何服务总线消息的内容作为纯字符串读取的最安全方法:

string body;
using (var stream = message.GetBody<Stream>())
using (var streamReader = new StreamReader(stream, Encoding.UTF8))
{
    body = streamReader.ReadToEnd();
}