You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于隔离模型的Azure Function中CancellationToken转换异常求助

问题分析与解决

问题原因

在Azure Functions隔离模型中,函数绑定系统偶尔会误将CancellationToken参数识别为需要从Service Bus输入绑定中解析的参数,而非框架自动注入的取消令牌。这会导致绑定系统尝试将Service Bus消息内容当作JSON来解析CancellationToken类型,从而抛出JSON格式错误。

解决方案

1. 显式标记CancellationToken参数来源

修改函数的Run方法,为CancellationToken参数添加[FromContext]属性,明确告知框架该参数从函数上下文获取,而非输入绑定:

[Function("MyFunction")]
public async Task Run(
    [ServiceBusTrigger("topic", "subscription", Connection = "connectionString")]string mySbMsg,
    [FromContext] CancellationToken token)

2. 升级Azure Functions SDK版本

该问题可能是旧版本Worker SDK的已知bug,升级到最新稳定版可修复:

  • 升级Microsoft.Azure.Functions.Worker包至1.19.0或更高
  • 升级Microsoft.Azure.Functions.Worker.Extensions.ServiceBus包至5.13.0或更高

3. 验证本地开发工具版本

确保Azure Functions Core Tools为最新版本,避免因工具生成的代码存在问题导致异常。

内容的提问来源于stack exchange,提问作者ThomasArdal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:36:00