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

使用GitHub Actions部署C# Web API到Azure App Service时部署失败求助

使用GitHub Actions部署C# Web API到Azure App Service时部署失败求助

兄弟,我帮你捋捋这个问题!从你贴的错误日志来看,核心问题是Node.js版本不兼容导致的语法错误——部署脚本里用了ES6的展开运算符...,但当前环境的Node版本太旧,不支持这个语法,所以才会抛出SyntaxError: Unexpected token ...。

去年部署正常现在出问题,大概率是Azure的部署脚本依赖的Node版本要求变高了,而你的App Service环境里还是旧版本的Node。给你几个可行的解决方案:

方案一:指定Azure App Service的Node.js版本

你可以强制Azure使用更高版本的Node来运行部署脚本:

  • 在你的Web API项目根目录新建一个.deployment文件,内容如下:
    [config]
    WEBSITE_NODE_DEFAULT_VERSION = 16.x
    
  • 把这个文件提交到GitHub仓库,重新触发部署;或者直接去Azure Portal,找到你的App Service → 配置 → 常规设置,在“Node.js版本”下拉框选16.x或更高的稳定版,保存后再部署试试。

方案二:更新GitHub Actions中的部署动作版本

你现在用的azure/webapps-deploy@v2是比较旧的版本了,新版本已经修复了不少兼容性问题,建议更新到最新的v4:
把deploy步骤里的这行代码替换掉:

uses: azure/webapps-deploy@v4

另外,你用的actions/setup-dotnet@v1也可以更新到v4,确保.NET环境配置更稳定:

uses: actions/setup-dotnet@v4
with:
  dotnet-version: '5.0.x'

方案三:手动生成部署脚本(兜底方案)

如果上面两种方法都不行,你可以本地生成部署脚本,避免Azure自动生成的脚本出问题:

  1. 在本地项目根目录运行命令:
    azure site deploymentscript -y --no-dot-deployment
    
  2. 把生成的.deployment和deploy.cmd文件提交到GitHub仓库
  3. 重新触发部署,这样Azure会直接使用你提供的脚本,不会再自动生成可能有问题的版本

另外提一句,.NET 5已经结束官方支持了,如果可以的话,建议升级到.NET 6或更高的LTS版本,这样后续的兼容性问题会更少哦!

备注:内容来源于stack exchange,提问作者fernando rodriguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:38:10