如何在Azure应用服务中覆盖虚拟路径部署应用的appsettings.json值
解决Azure应用服务虚拟应用的应用设置覆盖问题
方法1:通过Azure门户配置
- 进入目标应用服务的配置 > 应用设置页面
- 为虚拟应用的配置项添加特定前缀:
APPSETTING_<虚拟应用路径>__。比如虚拟应用路径是/my-dotnet-app,要设置DbConnection,键名就填APPSETTING_/my-dotnet-app__DbConnection,值填对应的配置内容 - 保存设置后,虚拟应用会自动识别该配置,无需在代码中做额外处理,直接通过
Configuration["DbConnection"]即可读取
方法2:使用Azure CLI配置
- 打开终端执行以下命令(替换占位符为你的实际资源信息):
az webapp config appsettings set --name <应用服务名称> --resource-group <资源组名称> --settings "/my-dotnet-app__DbConnection=your-db-connection-string" - 注意:CLI中不需要添加
APPSETTING_前缀,直接用<虚拟应用路径>__<配置键>的格式即可
方法3:通过ARM模板配置
- 在ARM模板的
siteConfig.appSettings节点中,添加虚拟应用的配置项,示例格式如下:{ "name": "/my-dotnet-app__DbConnection", "value": "your-db-connection-string" } - 部署模板后,配置会自动应用到指定的虚拟应用
关键注意事项
- 虚拟应用的配置优先级高于根应用的同名配置,会直接覆盖根应用的设置
- 配置键中的路径必须和Azure门户中虚拟应用的路径完全一致,比如虚拟应用路径是
/admin,就用/admin__<配置键>的格式
内容的提问来源于stack exchange,提问作者Vidhyardhi Gorrepati
相关产品推荐
相关产品推荐

