向Azure Linux App Service推送Node.js应用失败,Kudu异常执行dotnet命令
根因说明
该报错是Linux Azure App Service内置的Kudu部署服务底层组件损坏导致,与你本地的代码、Git配置无关。Kudu早期版本基于dotnet开发,组件文件丢失/损坏时就会触发你遇到的dotnet相关报错,和你部署的Node.js静态站点类型没有关联。
可行解决方案
按优先级依次尝试即可:
方案1:重置Kudu运行时
- 进入Azure门户对应App Service的「配置」页面,在「应用程序设置」中新增配置项
WEBSITE_DISABLE_KUDU,值设为true,保存后等待应用完全重启 - 重启完成后,删除刚才新增的
WEBSITE_DISABLE_KUDU配置项,再次保存等待应用重启 - 重启完成后执行
git push验证部署是否恢复
方案2:切换为Oryx构建引擎(适配Linux静态站点)
如果Kudu重置后仍然报错,直接换用Linux环境原生适配的Oryx构建引擎避开损坏的Kudu组件:
- 进入App Service的「配置」-「应用程序设置」,新增2个配置项:
ENABLE_ORYX_BUILD:值为trueSCM_DO_BUILD_DURING_DEPLOYMENT:值为true
- 保存配置等待应用重启后,再次执行
git push
方案3:重置部署配置
如果上述方案均失效,重置部署通道即可:
- 进入App Service的「部署中心」,断开当前的本地Git部署配置
- 重新配置本地Git部署,生成新的部署仓库地址和凭据
- 本地执行
git remote set-url <你的远程仓库名> <新生成的Git仓库地址>替换远程地址,再次执行push操作
你此前删除/home/site/deployments/tools/目录的操作无需回滚,Kudu重置后会自动生成完整的组件文件。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

