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

ASP.NET Core 7 ConnectionString未初始化异常排查求助

解决System.InvalidOperationException: ConnectionString属性未初始化的问题

问题现象

视图无数据,调试时抛出异常:System.InvalidOperationException: The ConnectionString property has not been initialized。该代码在其他项目可正常运行,合并至新项目并配置多DbContext与连接字符串后出现此问题。

核心原因

appsettings.json中QA_Context连接字符串未放在标准的ConnectionStrings节点下,而是单独创建了ConnectionStringQA节点。EF Core的builder.Configuration.GetConnectionString("QA_Context")方法默认仅读取ConnectionStrings节点内的配置,导致无法获取到正确的连接字符串,最终引发初始化异常。

修复步骤

1. 修正appsettings.json的连接字符串结构

将QA_Context移至ConnectionStrings节点下,修改后的配置如下:

{
    "ConnectionStrings": {
        "DefaultConnection": "Server=QSCCWSQL01.QSCC.local;Database=QsccDevAlpha;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True;Encrypt=True",
        "QA_Context": "Data Source=QSCCWSQL01.qscc.local;Initial Catalog=QSCC_QA;Integrated Security=True;TrustServerCertificate=True;MultipleActiveResultSets=true;Encrypt=True"
    },
    "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
    },
    "AllowedHosts": "*"
}

2. 验证DbContext依赖注入配置

确保Program.cs中QSCC_QAContext的注册代码保持不变:

builder.Services.AddDbContext<QSCC_QAContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("QA_Context")));

补充说明

  • GetConnectionString方法是ASP.NET Core提供的便捷方法,专门用于读取ConnectionStrings节点下的配置项,无需手动拼接节点路径。
  • 避免在依赖注入场景下调用QSCC_QAContext的无参构造函数,确保始终使用带DbContextOptions<QSCC_QAContext>参数的构造函数,由DI容器负责注入配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:32:07