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
相关产品推荐
相关产品推荐

