使用Azure DevOps部署Azure Function时出现Kudu网络路径未找到错误
先明确Kudu的实际作用
Kudu是Azure Function Apps、App Service平台内置的核心后台服务,所有走标准WebDeploy、ZipDeploy通道的部署操作(不管是Visual Studio右键发布、还是Azure DevOps流水线部署),最终都会调用Kudu接口完成文件上传、目录初始化、运行状态检测的全流程。你看到的所有堆栈中带Kudu标识的报错,本质是Kudu服务在目标Function App上初始化失败。
报错根因拆解
从堆栈调用链可以定位完整的故障触发路径:
- Kudu服务启动时,需要自动在挂载的文件存储中创建部署专属目录,默认路径为
D:\home\site\deployments - 调用系统创建目录的接口时,返回了
System.IO.IOException: 网络路径未找到的错误 - 结合你提到的「Visual Studio手动发布无异常」的前置条件,可以100%排除流水线授权、账号权限、部署包格式这类DevOps侧的配置问题,故障点完全出在Function App本身的平台存储挂载层——不是你的代码或者流水线写的有问题。
对应排查解决步骤
- 优先执行Function App重启
这类报错90%以上都是Azure平台侧存储挂载的临时缓存异常,在Function App概览页直接点击重启,等待服务完全启动后重新触发Azure DevOps部署,多数情况会直接恢复。
- 校验主存储配置状态
进入Function App的「环境变量/应用配置」页,检查关联的主存储账户状态:- 确认存储账户没有被误删除、没有配置防火墙拦截平台侧的访问流量
- 确认存储连接字符串输入没有拼写错误,没有指向已经不存在的SMB文件共享路径
- 清理损坏的部署缓存
如果重启没生效,尝试访问Kudu后台地址https://<你的Function App名称>.scm.azurewebsites.net:- 如果能正常打开控制台,直接手动删除
D:\home\site\deployments目录下所有损坏的配置文件,强制Kudu下次启动时重新生成目录结构 - 如果Kudu控制台完全打不开,直接登录关联的存储账户,找到对应的文件共享根目录,删除
site/deployments路径下损坏的部署XML配置文件
- 如果能正常打开控制台,直接手动删除
- 极端场景兜底操作
如果以上操作都没有解决,说明平台和存储账户之间的挂载映射已经损坏:在Function App配置页先删掉原有的主存储连接字符串保存,再重新输入完全一致的连接字符串并保存,强制Azure平台重新建立存储挂载关系,之后再重启Function App即可恢复。
内容的提问来源于stack exchange,提问作者Franky
相关产品推荐
相关产品推荐

