You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
注册

访问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.csprojMicrosoft.Azure.WebJobs.Extensions.Tokens的版本,尝试更新到最新的兼容版本后重新部署。

  • 重置Function App文件系统
    如果缓存清理没用,可以尝试重置整个应用的文件系统。在Azure门户进入旧Function App的“配置”->“常规设置”,找到“重置”选项,选择“重置文件系统”(注意:这会清除应用本地存储的所有文件,如有重要文件请先备份)。重置完成后重新部署函数代码。

  • 确认Runtime版本一致性
    对比新旧Function App的Runtime版本,确保旧应用的Runtime没有自动升级到不兼容的版本。在门户“配置”->“常规设置”里查看“运行时版本”,如果和新应用不一致,调整为相同版本后重启服务。

这些步骤应该能解决大部分这类Runtime启动失败的问题,因为核心矛盾就是旧应用的依赖环境出了问题,而新应用是干净的环境所以正常运行。

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

火山引擎 最新活动