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

Azure App Service重新部署后连接字符串消失问题咨询

Azure App Service连接字符串在GitHub CI/CD部署后消失的问题解决

原因

你手动添加的Azure App Service连接字符串属于应用级配置,部署后消失的核心原因是CI/CD部署过程覆盖了App Service的现有配置,常见触发场景包括:

  • 你使用的dotnet run azure自定义部署脚本,在部署时同步了代码中的配置文件(如appsettings.json)到App Service,直接覆盖了手动设置的连接字符串;
  • App Service的部署中心启用了**"从部署包应用设置"**选项,导致系统自动用部署包内的默认配置替换现有应用设置;
  • 部署逻辑中没有保留现有配置,而是直接重置了全部App Service配置项。

解决办法

方案1:通过GitHub Actions自动配置连接字符串(推荐生产环境)

将连接字符串存入GitHub Secrets,部署时自动写入App Service,避免手动配置被覆盖:

  1. 打开GitHub仓库的Settings > Secrets and variables > Actions,新建一个Secret(比如命名为AZURE_DB_CONNECTION_STRING),填入你的连接字符串内容;
  2. 修改GitHub Actions工作流的build-and-deploy任务,在Deploy步骤后添加Azure CLI命令设置连接字符串:
    - name: 'Set Connection String'
      run: |
        az webapp config connection-string set \
          --name 你的AppService名称 \
          --resource-group 你的资源组名称 \
          --settings "DefaultConnection=${{ secrets.AZURE_DB_CONNECTION_STRING }}" \
          --connection-string-type SQLAzure
    
    注意:--connection-string-type需根据你的数据库类型调整(如SQLAzure、Custom、MySQL等)。

方案2:禁用配置同步,保留手动设置

  1. 登录Azure Portal,进入目标App Service;
  2. 进入部署中心 > 设置,找到**"从部署包应用设置"选项,将其切换为关闭**;
  3. 检查你的dotnet run azure部署脚本,确保没有包含az webapp config appsettings set这类会批量替换配置的命令。

方案3:将连接字符串存入代码配置文件(仅测试环境可用)

如果是测试环境,可以把连接字符串添加到项目的appsettings.Production.json中,部署时同步到App Service。但生产环境严禁这么做,会将敏感信息暴露在代码仓库中。

内容的提问来源于stack exchange,提问作者Espen Brun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:35:26