You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure部署ASP.NET Core 7应用无法读取ASPNETCORE_ENVIRONMENT值

问题分析与解决

问题根源

日志中出现settings..json的文件找不到错误,说明代码中获取ASPNETCORE_ENVIRONMENT环境变量时返回了空值。原因是你在WebApplicationBuilder初始化完成前调用了Environment.GetEnvironmentVariable,此时Azure应用服务设置的环境变量还未被加载到当前进程的环境变量集合中,导致拼接的配置文件名出现空段。

解决方案

1. 使用Builder内置的环境名称替代直接读取环境变量

修改Program.cs中的配置加载代码,用builder.Environment.EnvironmentName替换Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"):

builder.Configuration
  .SetBasePath(Directory.GetCurrentDirectory())
  .AddJsonFile("settings.json", false, true)
  .AddJsonFile($"settings.{builder.Environment.EnvironmentName}.json", false, true)
  .AddEnvironmentVariables();

WebApplicationBuilder初始化时会自动读取Azure设置的环境变量,包括ASPNETCORE_ENVIRONMENT,因此builder.Environment.EnvironmentName能正确获取到production值,拼接出正确的settings.production.json文件名。

2. 验证环境变量是否生效

  • 登录Azure应用服务控制台,执行命令echo $ASPNETCORE_ENVIRONMENT,确认输出为production。
  • 在代码中添加日志输出环境名称,验证是否正确获取:
    Serilog.Log.Information("Current environment: {EnvironmentName}", builder.Environment.EnvironmentName);
    

3. 确认配置文件已部署

检查部署包中是否包含settings.production.json文件:

  • 本地发布应用时,确保该文件的“复制到输出目录”属性设置为“始终复制”或“如果较新则复制”。
  • 通过Azure应用服务的高级工具(Kudu),查看site/wwwroot目录下是否存在该文件。

内容的提问来源于stack exchange,提问作者Miguel Moura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:35:20