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

.NET 6 Worker Service中如何将appsettings.json与IConfiguration关联

.NET 6通过IConfiguration读取appsettings.json中的数据库连接字符串

1. 确认appsettings.json的配置格式

先确保你的appsettings.json里已配置好数据库连接字符串,示例格式如下:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=.;Database=你的数据库名;Trusted_Connection=True;TrustServerCertificate=True;"
  }
}

2. 在Program.cs中直接读取

.NET 6的WebApplication.CreateBuilder会自动加载appsettings.json等配置文件,无需额外初始化,直接通过builder.Configuration访问配置即可:

var builder = WebApplication.CreateBuilder(args);

// 读取连接字符串的两种方式
// 方式一:用GetConnectionString快捷方法(推荐)
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");

// 方式二:通过配置节点路径读取
// var connectionString = builder.Configuration["ConnectionStrings:DefaultConnection"];

// 示例:将连接字符串注入到DbContext
builder.Services.AddDbContext<你的DbContext类>(options =>
    options.UseSqlServer(connectionString));

var app = builder.Build();

// 后续中间件、服务配置...

app.Run();

3. 后台服务中通过依赖注入读取

如果是后台服务类需要访问连接字符串,直接在构造函数中注入IConfiguration即可:

public class 你的后台服务类 : BackgroundService
{
    private readonly IConfiguration _configuration;

    public 你的后台服务类(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        // 在服务逻辑中读取连接字符串
        var connectionString = _configuration.GetConnectionString("DefaultConnection");
        // 执行数据库操作...
    }
}

然后在Program.cs中注册这个后台服务:

builder.Services.AddHostedService<你的后台服务类>();

注意事项

  • 确保appsettings.json的复制到输出目录属性设置为「较新时复制」,避免部署时缺失配置文件。
  • GetConnectionString是框架专门为ConnectionStrings节点提供的快捷读取方法,和直接通过节点路径读取效果一致,但更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:57:22