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

使用GitHub Actions部署.NET Core应用到IIS服务器遇错求助

问题分析与解决方案

核心问题

你使用的azure/webapps-deploy Action是Azure App Service专属工具,它依赖Azure发布配置文件中特有的Kudu服务URL字段,而GoDaddy Plesk主机生成的发布配置(无论是.publishsettings还是Visual Studio导出的.pubxml)都不包含该字段,因此会触发"Publish profile does not contain kudu URL"错误。

此外,你的工作流中还有一个小问题:.NET Core SDK安装步骤引用了未定义的matrix.dotnet-version变量,会导致步骤执行失败。

解决方案

改用通用MSDeploy(Web Deploy)部署方式,适配GoDaddy主机的部署要求,具体步骤如下:

1. 拆分发布配置为独立GitHub Secrets

将原.pubxml中的关键信息拆分为3个GitHub仓库密钥:

  • MSDEPLOY_SERVICE_URL:值为https://example.com:8172/msdeploy.axd?site=example.com
  • MSDEPLOY_USERNAME:值为.pubxml中的UserName内容
  • MSDEPLOY_PASSWORD:值为.pubxml中的UserPWD内容

2. 修正并更新GitHub Actions工作流

替换原工作流内容为以下版本:

name: 🚀 Deploy website to PROD
on:
  workflow_dispatch:
  push:
    branches: [main]
    paths-ignore: [".vscode/**", "README.md", ".*"]
permissions:
  contents: read
jobs:
  web-deploy:
    name: 🎉 Deploy Prod
    runs-on: ubuntu-latest
    steps:
      - name: 🚚 Get latest code
        uses: actions/checkout@v3

      - name: Setup .NET Core SDK 6.0
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: '6.0.x'

      - name: Install dependencies
        run: dotnet restore

      - name: Build
        run: dotnet publish --configuration Release --no-restore

      - name: Deploy with MSDeploy
        run: |
          dotnet msdeploy publish \
            --source:package='./bin/Release/net6.0/publish' \
            --dest:auto,ComputerName="${{ secrets.MSDEPLOY_SERVICE_URL }}",UserName="${{ secrets.MSDEPLOY_USERNAME }}",Password="${{ secrets.MSDEPLOY_PASSWORD }}",AuthType=Basic \
            --verb:sync \
            --enableRule:DoNotDeleteRule \
            --disableLink:AppPoolExtension \
            --disableLink:ContentExtension \
            --disableLink:CertificateExtension

替代方案:使用第三方Web Deploy Action

如果偏好使用Action而非命令行,可改用支持通用Web Deploy的第三方Action,替换Deploy步骤为:

- name: Deploy to GoDaddy
  uses: elvenworks/web-deploy-action@v1
  with:
    web_deploy_package: './bin/Release/net6.0/publish'
    web_deploy_username: ${{ secrets.MSDEPLOY_USERNAME }}
    web_deploy_password: ${{ secrets.MSDEPLOY_PASSWORD }}
    web_deploy_server: ${{ secrets.MSDEPLOY_SERVICE_URL }}
    web_deploy_site_name: 'example.com'

关键说明

GoDaddy Windows主机支持标准MSDeploy协议,但不兼容Azure专属的部署工具链。通过直接调用dotnet msdeploy命令或通用Web Deploy Action,可绕过Azure特有的Kudu依赖,实现正常部署。

内容的提问来源于stack exchange,提问作者Chris Barr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:07:02