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,避免手动配置被覆盖:
- 打开GitHub仓库的Settings > Secrets and variables > Actions,新建一个Secret(比如命名为
AZURE_DB_CONNECTION_STRING),填入你的连接字符串内容; - 修改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:禁用配置同步,保留手动设置
- 登录Azure Portal,进入目标App Service;
- 进入部署中心 > 设置,找到**"从部署包应用设置"选项,将其切换为关闭**;
- 检查你的
dotnet run azure部署脚本,确保没有包含az webapp config appsettings set这类会批量替换配置的命令。
方案3:将连接字符串存入代码配置文件(仅测试环境可用)
如果是测试环境,可以把连接字符串添加到项目的appsettings.Production.json中,部署时同步到App Service。但生产环境严禁这么做,会将敏感信息暴露在代码仓库中。
内容的提问来源于stack exchange,提问作者Espen Brun
相关产品推荐
相关产品推荐

