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

.NET 6 Web API如何将appsettings配置读取为环境变量?

解决方法

方法1:手动将appsettings配置同步到环境变量

在Program.cs中,加载完配置后把指定配置项同步到进程环境变量,后续调用Environment.GetEnvironmentVariable就能读到值:

var builder = WebApplication.CreateBuilder(args);

// 读取appsettings里的UID并同步到环境变量
var uid = builder.Configuration["UID"];
if (!string.IsNullOrEmpty(uid))
{
    Environment.SetEnvironmentVariable("UID", uid);
}

// 后续服务注册、应用构建代码...
var app = builder.Build();

// 示例读取
var x = Environment.GetEnvironmentVariable("UID"); // 此时能获取到"myUid"

方法2:直接通过IConfiguration读取(更推荐)

.NET配置系统本身支持直接读取appsettings内容,没必要绕到环境变量。可以在需要的地方注入IConfiguration直接读取:

控制器中使用:

[ApiController]
[Route("[controller]")]
public class TestController : ControllerBase
{
    private readonly IConfiguration _configuration;

    public TestController(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    [HttpGet]
    public string Get()
    {
        var x = _configuration["UID"]; // 直接获取appsettings里的"myUid"
        return x;
    }
}

Program.cs中直接读取:

var builder = WebApplication.CreateBuilder(args);
var x = builder.Configuration["UID"]; // 这里就能读到配置值

为什么原方式返回null?

Environment.GetEnvironmentVariable只能读取系统/用户环境变量,或者launchsettings.json中environmentVariables节点下的配置项(启动时会被设为进程环境变量)。而appsettings.json的配置属于.NET专属配置系统,默认不会自动同步到进程环境变量,所以直接调用该方法会返回null。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:01:07