从Visual Studio部署到Windows版Azure App Service时如何同步全部分层appsetting配置
Azure App Service 分层配置部署问题解答
部署是否自动同步本地appsettings配置
默认Visual Studio发布到Azure App Service时,仅会将appsettings.json作为部署包的一部分上传至实例文件系统,不会自动将配置项同步到Azure Portal中App Service的配置面板。
你遇到的读取失败问题,通常是两种原因导致:一是发布时使用了环境专属配置文件(如appsettings.Production.json)未填写对应配置值,二是你开启了配置面板项优先读取规则,缺少对应层级的配置项。
是否需要手动重建所有配置项
不需要全量手动重建,可按配置属性分类处理:
- 非敏感、不区分环境的通用配置可直接保留在打包的appsettings.json中,应用运行时可正常读取
- 敏感信息(密钥、连接串)、各环境差异化配置,建议单独配置到Azure App Service配置面板,该面板配置优先级高于本地文件配置,无需修改代码即可覆盖本地值,同时避免敏感信息泄露到代码仓库。
分层配置适配键值对方案
Azure App Service的配置键使用双下划线__替代JSON的层级分隔符,.NET默认配置提供程序会自动将双下划线格式的键转换为对应层级的配置对象,完全兼容你现有的配置结构,无需修改原有配置读取逻辑。
对应你的配置示例,规则如下:
- 普通对象层级:
Jwt:key对应配置键为Jwt__key - 嵌套多层对象:
Serilog:Properties:ApplicationName对应配置键为Serilog__Properties__ApplicationName - 连接串类配置:
ConnectionStrings:DatabaseConsString建议直接放到Azure配置面板的「连接字符串」分类下,类别选择SQL Server即可 - 数组类型配置:按索引拼接,比如
Serilog:Enrich数组的第一个值FromLogContext,对应配置键为Serilog__Enrich__0,第二个值WithUserName对应Serilog__Enrich__1,以此类推即可。
内容的提问来源于stack exchange,提问作者NSS
相关产品推荐
相关产品推荐

