使用GitHub Actions部署多项目到Azure后遇403及文件缺失问题
问题排查与修复步骤
1. 补全构建阶段的产物上传步骤
你当前的构建流程仅执行了编译和发布操作,但未将发布后的产物上传为GitHub Artifact,导致部署阶段下载的.net-app artifact为空,最终部署到Azure的内容自然是空目录。
需在dotnet publish步骤后添加上传artifact的配置:
- name: Upload artifact for deployment job uses: actions/upload-artifact@v2 with: name: .net-app path: ${{env.DOTNET_ROOT}}/myapp
2. 确保.NET环境变量有效
如果构建阶段未配置.NET环境,${{env.DOTNET_ROOT}}变量可能未被正确定义,导致dotnet publish的输出路径无效。建议在构建阶段开头添加环境初始化步骤:
- name: Setup .NET SDK uses: actions/setup-dotnet@v3 with: dotnet-version: '6.0.x' # 替换为你的项目实际使用的.NET版本
3. 修正项目路径占位符
将{project folder}/project_name.csproj替换为仓库中项目文件的实际相对路径(例如src/MyWebApp/MyWebApp.csproj),否则dotnet publish可能找不到目标项目,或发布错误内容。
4. 调整部署阶段的包路径
actions/download-artifact@v2默认会将artifact内容下载到当前工作目录下的.net-app文件夹中,因此需修改部署步骤的package参数:
- name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: 'myappname' slot-name: 'dev' publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_****** }} package: ./.net-app
5. 验证发布产物(可选)
可在构建阶段添加步骤,确认发布目录的内容是否正确生成:
- name: Check published files run: dir ${{env.DOTNET_ROOT}}/myapp shell: pwsh
完成以上修改后重新触发GitHub Actions,即可正确将发布产物部署到Azure Web App,解决wwwroot为空和403错误问题。
内容的提问来源于stack exchange,提问作者von v.
相关产品推荐
相关产品推荐

