C#.NET Core Azure Functions v2; Microsoft.Azure.ServiceBus 3.2.0,Microsoft.Azure.WebJobs 3.0.2,Microsoft.Azure.WebJobs.Extensions.ServiceBus 3.0.1
我们收到使用旧ServiceBus软件包( WindowsAzure.ServiceBus,Microsoft.ServiceBus ),内容类型:文本/纯文本发布的BrokeredMessages。
我们在azure函数中使用ServiceBusTrigger来消费:
[ServiceBusTrigger("topic", "subscription", Connection = "appsetting")]Message message,
当尝试使用新软件包消费主题时
( microsoft.azure.servicebus )我们遇到以下错误:
System.Private.CoreLib:执行函数Function1时发生异常。 Microsoft.Azure.WebJobs.Host:异常绑定参数“ message”。 System.Private.CoreLib:无法将索引60处的字节[99]从指定的代码页转换为Unicode。
即使我们尝试使用其他类型来代替 Message ,也会发生此错误,例如 string , byte [] 和自定义类型。
问题似乎是 Content-Type :
内容类型:文本/纯文本
其他BrokeredMessage组合似乎正常工作(其中没有一个为空的Content-Type); 流+无,流+文本/纯文本,字符串+无和字符串+文本/纯文本;字符集= unicode。
由于我们可以在运行时访问MessageReceiver或其他ServiceBus配置来处理此问题,因此我们可以在webjobs中规避此问题(未试用),但是到目前为止,我们还找不到用于Azure的任何解决方案或方法在我们进入函数内部之前,作为框架的函数会引发错误。
还有其他人遇到此错误吗?我目前的方法有误吗?
我们无法控制消息的生成,因此我们无法轻松更改它。
其他人在类似配置方面存在不同的问题:BrokeredMessage send and Message consumer in Azure Function v2
答案 0 :(得分:1)
您是否尝试过指定编码以及内容类型?像:Content-Type: text/plain;charset=unicode