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

控制台应用可读取连接字符串,但注入DbContext时报错找不到'DefaultConnection'

控制台应用连接字符串配置错误排查

错误信息

A named connection string was used, but the name 'DefaultConnection' was not found in the application's configuration

Program.cs 代码

static async Task Main(string[] args)
{
    var configuration = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .Build();

    var sss = configuration.GetConnectionString("DefaultConnection");
    Console.WriteLine(sss);
    var serviceProvider = new ServiceCollection()
        .AddLogging(configure => configure.AddSerilog())
        .AddDbContext<MydbContext>(options => options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")), ServiceLifetime.Transient)
        .AddScoped<IDataService, DataService>()
        .AddScoped<IMemoryCache, MemoryCache>()
        .AddScoped<IStockDataImportService, StockDataImportService>()
        .BuildServiceProvider();

    IStockDataImportService importService = serviceProvider.GetRequiredService<IStockDataImportService>();


    Console.WriteLine("Stock Data Import process started!");
    await FetchFile(logger, importService, configuration);
}

相关依赖类构造函数

StockDataImportService

public StockDataImportService(IDataService serv)
{
    _serv = serv;
}

DataService

public DataService(MydbContext context, IMemoryCache memoryCache) 
{
    _context = context;
    string? ddd = _context.Database.GetConnectionString();
    _memoryCache = memoryCache;
}

问题说明

已验证var sss可正确输出连接字符串,说明配置文件加载正常。但调用GetRequiredService<IStockDataImportService>()时触发上述错误,推测问题出在DataService获取DbContext的环节,请问哪里操作有误?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:42:43