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

EF迁移报错‘Host Cannot be null’,请求排查问题原因

问题原因及解决方法

核心原因

builder.Configuration.GetConnectionString("PostgreConnection") 方法默认从配置文件的 ConnectionStrings 根节点 中匹配读取连接字符串,但你当前的连接字符串是放在自定义的 PostgreConnectionString 节点下的,导致方法返回null,Npgsql无法解析到主机信息,因此抛出"Host Cannot be null"错误。

两种解决方式

方式一:调整配置节点结构

将连接字符串移到标准的ConnectionStrings节点下,让GetConnectionString能正常读取:

"ConnectionStrings": {
  "PostgreConnection": "host=localhost;port=5432;dbname=OpenAccessDB;user=postgres;password=postgres;Integrated Security=true;"
}

方式二:直接读取自定义节点

如果不想修改配置结构,直接通过配置路径读取对应值:

builder.Services.AddDbContext<OpenAccessDBContext>(o => 
    o.UseNpgsql(builder.Configuration["PostgreConnectionString:PostgreConnection"]));

额外提示:你的连接字符串同时包含user=postgres和Integrated Security=true,这两种认证方式存在冲突,建议根据实际场景保留其一(比如本地测试用密码认证的话,可移除Integrated Security=true)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:43:09