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

ASP.NET Core 8中Configuration.GetConnectionString()返回null的问题排查与解决求助

ASP.NET Core 8中Configuration.GetConnectionString()返回null的问题排查与解决求助

大家好,我最近在开发一个ASP.NET Core 8的Web API项目,用EF Core做数据访问层。我明明已经把数据库连接字符串配置在appsettings.json里了,但调用builder.Configuration.GetConnectionString("DefaultConnection")的时候却一直返回null,控制台输出就是Connection String: (null),完全拿不到配置的内容,实在搞不懂哪里出问题了,来请教各位!

先给大家看一下我的配置和代码:

我的appsettings.json配置:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=MyDb;Trusted_Connection=True;"
  }
}

Program.cs里的相关代码:

var builder = WebApplication.CreateBuilder(args);

// 尝试获取连接字符串
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
Console.WriteLine("Connection String: " + connectionString);

// 注册DbContext
builder.Services.AddDbContext<MyDbContext>(options => 
    options.UseSqlServer(connectionString));

var app = builder.Build();

// 其他中间件配置...

app.Run();

控制台的输出就是:

Connection String: (null)

我已经试过这些方法了,都没解决:

  • 确认了appsettings.json的“复制到输出目录”设置是如果较新则复制
  • 检查了ConnectionStrings和DefaultConnection的大小写,完全一致,没有拼写错误
  • 换用builder.Configuration["ConnectionStrings:DefaultConnection"]直接取值,结果还是null
  • 手动加了builder.Host.ConfigureAppConfiguration(...)来手动配置配置源,也没任何变化

我预期的结果是builder.Configuration.GetConnectionString("DefaultConnection")能正确返回我在appsettings.json里写的那个连接字符串,这样EF Core才能正常连接数据库。

我的开发环境:

  • ASP.NET Core 8.0
  • Windows 11
  • Visual Studio 2022(最新版本)
  • .NET SDK 8.0.100

想请教各位大佬:为什么明明配置文件里存在对应的键,GetConnectionString("DefaultConnection")还是返回null?我该怎么修复这个问题呢?


内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 11:43:07