I'm working on an ASP.NET Core 8 Web API project using Entity Framework Core. I've added my connection string to appsettings.json, but when I try to retrieve it using
Configuration.GetConnectionString("DefaultConnection")
it returns null.
Here's my setup - appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=MyDb;Trusted_Connection=True;"
}
}
Program.cs:
var builder = WebApplication.CreateBuilder(args);
// Trying to get connection string
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
Console.WriteLine("Connection String: " + connectionString);
// Add services
builder.Services.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(connectionString));
Console output:
Connection String: (null)
What I've tried:
- Confirmed
appsettings.jsonis set to "Copy if newer" - Checked casing of
ConnectionStringsandDefaultConnection - Tried
builder.Configuration["ConnectionStrings:DefaultConnection"]-> still null - Manually added
builder.Host.ConfigureAppConfiguration(...)—> no change
Expected behavior:
I expect
builder.Configuration.GetConnectionString("DefaultConnection")
to return the connection string defined in appsettings.json.
Environment:
- ASP.NET Core 8.0
- Windows 11
- Visual Studio 2022 (latest)
- .NET SDK 8.0.100
Question: why is GetConnectionString("DefaultConnection") returning null even though the key exists in appsettings.json, and how can I fix it?

appsettings.developpment.jsonin your project? If so, does it have a ConnectionStrings section?connectionStringisnullI would expectConnection String:rather thanConnection String: (null)... which could mean you are not running the code you think you are running.builder.Configuration.GetConnectionStringin Program.cs, the Console output showed the connection string instantly. Debugging your actual project to see builder.Configuration will definitely help.