如何在ASP.NET Core应用中读取、使用Azure应用配置及部署配置?
问题解答
1. 在REST API中使用加载后的配置
你已经通过builder.Services.Configure<IssueIdentityAPIConfig>(...)完成了配置绑定,ASP.NET Core REST API中获取配置的方式和页面场景一致,通过依赖注入即可实现,具体操作如下:
在API控制器的构造函数中注入配置对象(可选
IOptionsSnapshot<T>/IOptions<T>/IOptionsMonitor<T>,按需选择):[ApiController] [Route("api/[controller]")] public class DemoController : ControllerBase { private readonly IssueIdentityAPIConfig _apiConfig; // 注入IOptionsSnapshot,支持请求范围内的配置动态更新 public DemoController(IOptionsSnapshot<IssueIdentityAPIConfig> apiConfig) { _apiConfig = apiConfig.Value; } [HttpGet] public IActionResult GetConfig() { // 直接调用配置项 var targetSetting = _apiConfig.YourSettingName; return Ok(targetSetting); } }三种注入对象的区别:
IOptions<T>:单例模式,启动时加载配置,不支持动态更新IOptionsSnapshot<T>:请求范围模式,每次请求重新读取配置,适配动态刷新场景IOptionsMonitor<T>:单例模式,可实时监听配置变化,适合主动监听配置更新的场景
2. 部署到Azure后的配置处理
部署到Azure Web App后无需修改现有代码,只需在Azure门户完成配置映射即可:
登录Azure门户,进入你的Web App,选择配置 > 连接字符串(或配置 > 应用程序设置):
- 若用连接字符串:新增名称为
AppConfig的项,值填入Azure App Configuration的实际连接字符串,类型选Custom - 若用应用程序设置:新增键为
ConnectionStrings:AppConfig的项,值填入连接字符串
(ASP.NET Core的Configuration.GetConnectionString("AppConfig")会自动读取这两种配置,且Azure门户设置优先级高于本地appsettings.json)
- 若用连接字符串:新增名称为
本地开发时,可将
AppConfig连接字符串存放在appsettings.Development.json或用户机密中,避免敏感信息提交到代码仓库;部署后Azure门户的配置会自动覆盖本地配置,保障生产环境安全。
内容的提问来源于stack exchange,提问作者WayneRoseberry
相关产品推荐
相关产品推荐

