访问Azure Functions时遇‘Function host is not running’错误求助
解决Azure Functions Runtime启动失败(Microsoft.Azure.WebJobs.Extensions.Tokens方法找不到)的问题
从你描述的情况来看——旧Function App突发异常,本地重建部署、重启都没用,但新应用部署正常,结合报错信息:
Error: The function runtime is unable to start. Microsoft.Azure.WebJobs.Extensions.Tokens: Method not fou...
这基本可以锁定是旧应用的扩展依赖缓存损坏或版本冲突导致的,毕竟代码本身没问题。下面是几个亲测有效的解决步骤:
-
清理扩展缓存
登录旧Function App的Kudu控制台(门户里点击“高级工具”->“Go”),打开CMD终端,执行以下命令删除扩展缓存:rmdir /s /q D:\home\data\Functions\ExtensionBundles执行完后回到Azure门户重启Function App,让系统重新下载并安装兼容的扩展包。
-
对齐扩展与Runtime版本
检查你的函数项目中host.json里的extensionBundle配置,确保它和旧应用的Functions Runtime版本匹配。比如如果旧应用用的是v4 Runtime,对应的bundle版本应该是[4.*, 5.0.0)。同时查看extensions.csproj里Microsoft.Azure.WebJobs.Extensions.Tokens的版本,尝试更新到最新的兼容版本后重新部署。 -
重置Function App文件系统
如果缓存清理没用,可以尝试重置整个应用的文件系统。在Azure门户进入旧Function App的“配置”->“常规设置”,找到“重置”选项,选择“重置文件系统”(注意:这会清除应用本地存储的所有文件,如有重要文件请先备份)。重置完成后重新部署函数代码。 -
确认Runtime版本一致性
对比新旧Function App的Runtime版本,确保旧应用的Runtime没有自动升级到不兼容的版本。在门户“配置”->“常规设置”里查看“运行时版本”,如果和新应用不一致,调整为相同版本后重启服务。
这些步骤应该能解决大部分这类Runtime启动失败的问题,因为核心矛盾就是旧应用的依赖环境出了问题,而新应用是干净的环境所以正常运行。
内容的提问来源于stack exchange,提问作者meds




