Azure Web App部署未按ASPNETCORE_ENVIRONMENT配置选择appsettings.json
问题解决方案
根因说明
你遇到的是Azure App Service部署ASP.NET Core应用时环境特定配置文件不加载的典型问题,在已确认ASPNETCORE_ENVIRONMENT环境变量正确设置的前提下,问题基本出自以下两类原因:
- 构建产出的发布包中未包含
appsettings.Production.json文件 - 自定义的主机配置逻辑覆盖了默认的环境配置文件加载规则
排查&修复步骤
- 第一步:验证发布包内容
下载Azure DevOps构建任务产出的MyWebApi.zip包,解压后检查应用根目录下是否存在appsettings.Production.json文件- 若文件不存在:
检查项目csproj配置,确保appsettings.Production.json的发布规则配置正确,示例配置如下:
同时确认构建任务没有额外的过滤规则排除了Production后缀的配置文件。<ItemGroup> <Content Update="appsettings.*.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </Content> </ItemGroup> - 若文件存在:
检查Program.cs/Startup.cs中的主机构建逻辑,确保显式加载了环境特定的配置文件,.NET 6+的正确配置示例如下:var builder = WebApplication.CreateBuilder(args); // 如果你手动修改了默认配置构建逻辑,需要补加以下规则 builder.Configuration .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables();
- 若文件不存在:
- 第二步:排查App Service特殊配置
检查App Service应用设置中WEBSITE_LOAD_USER_PROFILE参数是否为1,该参数被修改为0时会导致环境变量读取异常,无法正确识别当前运行环境。
你贴出的Azure DevOps部署任务本身没有配置错误,不需要修改。
内容的提问来源于stack exchange,提问作者user232548
相关产品推荐
相关产品推荐

