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

