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

执行update-database报SQL Server错误26无法定位实例如何解决

update-database 报SQL连接错误26排查方案

错误26本质是客户端找不到指定的SQL Server实例,你已经确认TCP/IP协议开启、防火墙放行了常用端口、VS本身可正常连接目标实例,按以下优先级逐一排查:

  • 先核对包管理器控制台的执行上下文
    update-database默认读取解决方案当前启动项目下的配置文件,不是存放DbContext的类库项目配置。只要启动项目选错(比如选了无关类库、其他测试项目),就读不到你写的连接字符串,直接报实例找不到的错误。
    操作:
    1. 把存了正确appsettings.json的主项目(Web/控制台项目)设为解决方案启动项目
    2. 看包管理器控制台顶部的「默认项目」下拉框,选中存放ProductionManagmentContext的EF数据项目
    3. 重新执行update-database测试
  • 强制指定连接字符串测试,排除配置加载问题
    直接给命令追加连接字符串参数,跳过配置文件读取环节,直接验证连通性,执行命令:
    PM> update-database -ConnectionString "Server=DESKTOP-MAQO344\SQLEXPRESS;Database=ProductionManagment.Data;Trusted_Connection=True;MultipleActiveResultSets=true"
    
    如果该命令执行成功,说明问题出在配置加载环节:检查启动项目下的appsettings.json是否设置了「较新则复制」的输出属性,同时核对你贴的连接字符串少了闭合大括号,补全JSON语法后再试。
  • 修正SQLEXPRESS实例的端口配置
    SQLEXPRESS是命名实例,默认用动态端口而非固定1433端口,单独放行1433端口没用。
    操作:
    1. 打开SQL Server配置管理器,进入「SQL Server网络配置 > SQLEXPRESS的协议 > TCP/IP」,右键打开属性
    2. 切到「IP地址」标签,拉到最底部的IPAll分组:
      • 要么记下当前「TCP动态端口」的端口号,在防火墙中放行该端口
      • 要么清空「TCP动态端口」输入框,在「TCP端口」栏填1433,将实例改为固定1433端口
    3. 回到服务列表,重启SQLEXPRESS对应的数据库服务,配置才会生效
  • 开启SQL Server Browser服务
    命名实例的网络解析依赖SQL Server Browser服务,该服务默认是禁用状态:
    1. 按Win+R输入services.msc打开服务管理器
    2. 找到SQL Server Browser服务,把启动类型改成「自动」,手动启动服务后重试命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:27:16