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

Azure Function v1升级SDK后计时器触发函数未触发求助

问题描述
  • 运行环境:基于.NET Framework 4.6.1的Azure Function v1(运行时版本1)
  • 依赖变更:原项目使用已停用超1年的SharePointPnPCoreOnline包,替换安装PnP.Framework 1.10版本
  • 依赖冲突:PnP.Framework 1.10要求Newtonsoft.Json版本 >12.0.3,原项目引用的Microsoft.NET.Sdk.Functions 1.0.24固定依赖Newtonsoft.Json 11.0.2,版本不兼容
  • 升级操作:将Microsoft.NET.Sdk.Functions升级至1.0.38版本,该版本要求Newtonsoft.Json版本 >=11.0.2,可满足依赖兼容要求
  • 故障现象:升级后HTTP触发类型函数运行正常,所有计时器触发函数全部停止执行——原配置每5分钟运行一次的多个计时器函数,等待数小时无任何调用记录
  • 已尝试操作:
    • Azure门户重启函数应用
    • 使用master key向https://{functionappname}.azurewebsites.net/admin/host/synctriggers?code=<API_KEY>发送POST请求手动同步触发器
    • 确认AzureWebJobsStorage应用配置参数正确
  • 复现验证:回滚所有包升级变更后,计时器函数恢复正常运行,判断故障为包版本兼容问题导致
解决步骤

1. 修复程序集绑定重定向

.NET Framework项目升级NuGet包后常出现绑定重定向未自动更新的问题,计时器触发器依赖的WebJobs组件加载错误版本Newtonsoft.Json时会静默失败,HTTP触发器因加载链路不同不受影响:

  • 本地开发时右键项目属性,在「生成」配置页勾选自动生成绑定重定向,重新编译项目
  • 发布后通过Kudu站点打开D:\home\site\wwwroot\web.config,检查<runtime><assemblyBinding>节点下Newtonsoft.Json的重定向规则,确保所有低版本都重定向到实际部署的版本,参考配置:
<dependentAssembly>
  <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.3.0" />
</dependentAssembly>

2. 对齐WebJobs扩展包版本

Microsoft.NET.Sdk.Functions 1.0.38依赖的计时器扩展包可能和PnP.Framework存在隐式版本冲突,不要手动单独升级WebJobs相关组件,在NuGet包管理器控制台执行以下命令强制重装对齐版本:

Update-Package Microsoft.Azure.WebJobs.Extensions -reinstall
Update-Package Microsoft.Azure.WebJobs.Extensions.Timers -reinstall

重新发布后进入Kudu站点,打开D:\home\LogFiles\Application\Functions\Host目录下的主机启动日志,搜索TimerTrigger关键字,确认无程序集加载失败报错。

3. 清理存储残留锁

v1版本Azure Function的计时器触发器依赖AzureWebJobsStorage存储账户的租约锁实现单实例触发,升级过程中主机异常退出会残留无效锁导致触发器无法启动:

  • 先停止函数应用
  • 打开AzureWebJobsStorage对应的存储账户,进入azure-webjobs-hosts容器,删除locks目录下所有blob文件
  • 重启函数应用,等待2分钟后查看触发器运行状态。

4. 开启详细日志定位具体错误

如果上述操作无效,修改项目根目录host.json开启verbose级日志,同时缩短单例锁周期,重启后可在主机日志中看到计时器触发器的完整加载链路,直接定位加载失败的具体程序集:

{
  "version": "1.0",
  "tracing": {
    "consoleLevel": "verbose"
  },
  "singleton": {
    "lockPeriod": "00:00:15",
    "listenerLockPeriod": "00:01:00"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:06:21