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

发布Azure Functions后出现Microsoft.Azure.WebJobs.Script重复FunctionMetadata报错

Microsoft.Azure.WebJobs.Script: Found duplicate FunctionMetadata with the name XXX.

报错核心原因

该报错本质是Azure Functions运行时加载函数元数据时,检测到两条完全同名的函数记录导致冲突,常见触发场景如下:

  • 本地项目存在重复命名的函数:C#类库中两个方法标注了相同值的[FunctionName]特性,或是Node.js/Python等脚本类函数中,多个函数文件夹下function.json的name字段取值重复
  • 发布时未清理目标端旧文件:多次增量发布过程中,之前部署的同名旧函数文件残留在Function App存储空间中,和新发布的函数重名
  • 部署配置冲突:开启WEBSITE_RUN_FROM_PACKAGE运行模式时,旧部署包缓存未清理,和新部署包内的函数重名
  • 混合部署模式冲突:同时使用预编译函数部署和手写脚本函数部署,两类函数出现命名重复
排查步骤
  • 首先检查本地项目:全局搜索所有函数的命名标识,确认不存在和报错中XXX同名的重复函数声明
  • 登录Azure门户进入对应Function App,左侧导航栏选择「函数」菜单,查看已列出的函数中是否存在两个名称为XXX的条目
  • 进入Function App的「高级工具(Kudu)」,打开site/wwwroot目录,检查是否存在两个同名的函数文件夹,也可以查看Microsoft.Azure.WebJobs.Script.WebHost.metastore.json文件,确认FunctionMetadata节点下是否有重复的XXX条目
  • 检查Function App配置项,确认WEBSITE_RUN_FROM_PACKAGE参数取值,排查部署历史是否存在多次增量部署未清理旧文件的情况
解决方法
  • 若本地存在重名函数:修改重复的函数命名标识,保证所有函数名称全局唯一后重新打包发布
  • 若为旧文件残留:发布时在部署工具中勾选「部署前删除目标现有文件」,使用Azure CLI部署时可添加--clean true参数,先清空目标端wwwroot目录的旧文件再发布新内容
  • 若为包运行模式缓存问题:临时将WEBSITE_RUN_FROM_PACKAGE配置改为0,清空wwwroot目录下所有旧文件后重新上传部署包,再改回原配置值
  • 若为元数据缓存冲突:重启Function App,或进入Kudu控制台删除D:\home\data\Functions\metastore目录下的所有缓存文件后再次重启应用即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:24:02