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

.NET 6开发环境读取环境变量及Azure生产配置问题咨询

问题解决与配置方案

1. 为什么Environment.GetEnvironmentVariable("TestValue")读不到值

Environment.GetEnvironmentVariable是读取系统/进程级环境变量,而你在appsettings.json的Values节点里配置的内容属于.NET配置系统的配置项,两者来源不同,所以直接调用这个方法拿不到值。

2. 如何读取appsettings.json里的配置项

.NET内置的配置系统可以直接读取appsettings.json,推荐通过依赖注入的IConfiguration实例来操作,也可以基于它封装你需要的getvariables逻辑:

基础读取方式

ASP.NET Core项目默认已在Program.cs中加载appsettings.json,你只需要在目标类中注入IConfiguration即可读取:

public class YourService
{
    private readonly IConfiguration _config;

    public YourService(IConfiguration config)
    {
        _config = config;
    }

    public string GetTestValue()
    {
        // 按节点路径读取配置
        return _config["Values:TestValue"];
    }
}

封装自定义getvariables函数

如果需要统一的配置读取逻辑,可以封装工具类:

public static class ConfigHelper
{
    public static string GetVariable(IConfiguration config, string key)
    {
        return config[key];
    }
}

// 使用示例
var testValue = ConfigHelper.GetVariable(_config, "Values:TestValue");

3. 开发与生产环境的配置隔离方案(不提交appsettings.json到Git)

开发环境

  • 保留appsettings.json用于本地开发,但将敏感配置移到appsettings.Development.json中,然后把appsettings.json加入.gitignore文件,避免提交到Git:
appsettings.json

生产环境(Azure)

在Azure App Service中手动配置变量,无需修改代码:

  1. 登录Azure门户,进入你的App Service资源
  2. 左侧菜单选择「配置」→「应用程序设置」
  3. 点击「新建应用程序设置」,添加键值对:
    • 键:Values:TestValue
    • 值:你的生产环境实际值
  4. 保存后,Azure会自动将这些配置注入到.NET配置系统中,且优先级高于本地appsettings.json,代码读取逻辑完全通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 01:45:35