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
相关产品推荐
相关产品推荐

