我创建了一个简单的Azure函数,它在服务总线队列上触发。
我想把完整的信息有效载荷注入触发器。现在有两个库可用于使用Azure服务总线-旧的https://www.nuget.org/packages/Microsoft.Azure.ServiceBus/和新的https://www.nuget.org/packages/Azure.Messaging.ServiceBus/
如果我使用Microsoft.Azure.ServiceBus.Message注入消息有效负载,但是使用较新的Azure.Messaging.ServiceBus.ServiceBusMessage会产生运行时错误。
理想情况下想使用较新的库-是否有任何配置更改需要使这一工作?
错误是
已执行“IncomingMessageProcessingFunction”(失败,Id= 01 b3 f0 c1-fe 4d-4d 0 f-89 db-7814 a4 a0 ddbe,持续时间= 2756 ms)[2021-09- 13 T10:56:47.944Z] System.Private.CoreLib:执行函数时出现异常:IncomingMessageProcessingFunction. Microsoft.Azure.WebJobs.Host:异常绑定参数“myQueueItem”。Microsoft.Azure.WebJobs.ServiceBus:将参数绑定到复杂对象(如“ServiceBusMessage”)使用Json.NET序列化或XML对象序列化。[2021-09-13T10:56:47.946Z] 1.如果ContentType是'application/json',则反序列化为JSON [2021-09- 13 T10:56:47.948Z] 2.如果ContentType不是'application/json',则尝试使用Message.GetBody进行反序列化,这将处理类似XML对象序列化的情况[2021-09- 13 T10:56:47.949Z] 3.如果此反序列化失败,请最后尝试JSON反序列化,以捕获内容类型可能不正确的情况[2021-09- 13 T10:56:47.951Z] JSON解析器失败:将值123转换为类型“Azure.Messaging.ServiceBus. ServiceBusMessage”时出错。路径“”,第1行,位置3。
作品
[FunctionName("IncomingMessageProcessingFunction")]
public static void Run([ServiceBusTrigger("incomingmessageprocessingqueue", Connection = "SERVICEBUS")]Microsoft.Azure.ServiceBus.Message myQueueItem, ILogger log)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem.Body}");
1条答案
按热度按时间q9rjltbz1#
请尝试使用System.Text.Json而不是Newtonsoft或者可能是有效负载不正确