当前位置: 首页 > 知识库问答 >
问题:

Azure函数服务总线触发器:尝试绑定到自定义类时获得序列化异常

景仲渊
2023-03-14

我正在创建一个带有服务总线触发器的Azure函数,并尝试将传入的消息绑定到我的一个自定义类:

public class InputMessage
{
    public string EntityId { get; set; }
}

public static string Run(InputMessage message, TraceWriter log)
{
    log.Info($"C# ServiceBus trigger function processed message: {message}");
}
{ "EntityId": "1234" }

执行函数时发生异常:Functions.ServiceBustriggerCSharp1。Microsoft.Azure.WebJobs.Host:出现一个或多个错误。绑定参数“message”异常。System.Runtime.Serialization:需要命名空间“http://schemas.datacontract.org/2004/07/"中的元素”submission_x0023_0.inputMessage“。遇到名为“String”、命名空间为“http://schemas.microsoft.com/2003/10/serialization/”得“Element”..

看起来运行库试图使用DataContractSerializer反序列化消息。如何将反序列化切换到JSON?

共有1个答案

相诚
2023-03-14

函数中的brokeredmessage必须将contenttype属性显式设置为application/json。如果未指定,则假定默认的DataContractSerializer。所以,在发送消息时执行以下操作:

var message = new BrokeredMessage(body)
{
    ContentType = "application/json"
};

有关详细信息,请参阅ServiceBus序列化方案。

 类似资料:
  • 我正在运行Visual Studio 2017预览并在本地运行函数代码,我正在使用开箱即用的Azure函数项目模板。我试图让一个由定时器触发的Azure函数使用输出绑定向服务总线队列发送消息,但WebJob SDK似乎无法将输出绑定到字符串类型。 结合 定时器功能 错误消息 TimerTriggerCSharp: Microsoft.Azure.WebJobs.Host: Error indexi

  • 在.NET core 2.0中使用创建时,我遇到了一个问题。 在体系结构中,当在用于创建用户的队列中创建新消息时,服务必须接收该消息并根据其中的信息在数据库中创建用户。 在Visual Studio2017中,我在下创建了一个新项目。 这种的正确实现是什么?在GitHub上有什么例子吗?提前道谢。

  • 我正在尝试绑定到Azure服务总线触发函数中的。 我的目标是处理死信队列消息并完成它们。 问题是它无法绑定到MessageReceiver类。 微软蔚蓝色的网络作业。主机:错误索引方法“Function1”。微软蔚蓝色的网络作业。主机:无法将参数“receiver”绑定到类型MessageReceiver。确保绑定支持参数类型。如果您使用的是绑定扩展(例如Azure Storage、Service

  • 根据https://docs.microsoft.com/en-us/Azure/Azure-functions/functions-bindings-service-bus-trigger?tabs=CSharp#usage(emphasis mine)的文档,是允许的参数类型之一: 下列参数类型可用于队列或主题消息: 字符串-如果消息是文本。 字节[]-用于二进制数据。 自定义类型-如果消息包

  • 我目前正在评估使用一个服务总线和azure函数来触发一些需要通过下游api调用来完成的工作。这都是相当标准的,只是我没有很好地处理当下游系统过载和/或返回header到trottle时会发生什么(即每分钟最大调用数/等)。对于队列触发器的强制节流,我们似乎没有任何动态控制。 我知道我们可以手动设置最大并发,但这并不一定解决问题,因为我们无法控制下游系统,需要考虑它随时可能脱机或变慢。 假设消费计划

  • 我一直在尝试为Azure函数实现DI,其中函数由ServiceBus触发(本例中为主题/订阅): 我在以下网站上阅读了有关Azure Functions和DI的信息: https://mcguirev10.com/2018/04/03/service-locator-azure-functions-v2.html https://blog.wille-zone.de/post/azure-func