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

Visual Studio NuGet包管理器执行update-database时出现SQL Server连接错误

问题描述

学习Blazor Wasm Cookie认证教程时,执行update-database命令后出现以下错误:

建立与SQL Server的连接时发生与网络相关或特定实例的错误。找不到服务器或无法访问。请验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(provider: Named Pipes Provider, error: 40 - 无法打开到SQL Server的连接)

疑问:该错误是需要额外安装工具,还是与项目配置有关?应如何解决?

项目代码

Program.cs

public class Program
{
      public static void Main(string[] args)
      {
          var builder = WebApplication.CreateBuilder(args);

          // Add services to the container.
          builder.Services.AddRazorComponents().AddInteractiveWebAssemblyComponents();

          builder.Services.AddDbContext<ApplicationDbContext>(o =>
              o.UseSqlServer(builder.Configuration.GetConnectionString("Default"))
          );

          builder
              .Services.AddIdentity<ApplicationUser, IdentityRole>()
              .AddEntityFrameworkStores<ApplicationDbContext>()
              .AddSignInManager()
              .AddDefaultTokenProviders();

          var app = builder.Build();

          // Configure the HTTP request pipeline.
          if (app.Environment.IsDevelopment())
          {
              app.UseWebAssemblyDebugging();
          }
          else
          {
              app.UseExceptionHandler("/Error");
              app.UseHsts();
          }

          app.UseHttpsRedirection();

          app.UseStaticFiles();
          app.UseAntiforgery();

          app.MapRazorComponents<App>()
              .AddInteractiveWebAssemblyRenderMode()
              .AddAdditionalAssemblies(typeof(Client._Imports).Assembly);

          app.Run();
      }
}

项目文件(.csproj)

<Project Sdk="Microsoft.NET.Sdk.Web">

    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
    </PropertyGroup>

    <ItemGroup>
        <ProjectReference Include="..\Safrim.Wasm.Client\Safrim.Wasm.Client.csproj" />
        <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.6" />
        <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.7" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.7" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.7">
          <PrivateAssets>all</PrivateAssets>
          <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
    </ItemGroup>

</Project>
解决方案

这个错误主要与项目配置和SQL Server服务状态有关,不需要额外安装工具(除非本地未安装SQL Server),按以下步骤排查:

1. 检查SQL Server服务状态

按下Win+R输入services.msc打开「服务」,找到对应SQL Server实例的服务(默认实例为MSSQLSERVER,命名实例通常是SQLEXPRESS),确认服务处于「正在运行」状态。若未运行,右键启动服务。

2. 验证连接字符串配置

打开项目的appsettings.json或appsettings.Development.json,检查Default连接字符串格式是否正确:

  • 本地LocalDB实例(Visual Studio自带):
    "ConnectionStrings": {
      "Default": "Server=(localdb)\\mssqllocaldb;Database=YourDbName;Trusted_Connection=True;MultipleActiveResultSets=true"
    }
    
  • SQL Server Express实例:
    "ConnectionStrings": {
      "Default": "Server=.\\SQLEXPRESS;Database=YourDbName;Trusted_Connection=True;MultipleActiveResultSets=true"
    }
    
  • 注意实例名称必须与本地安装的SQL Server实例完全匹配。

3. 确认SQL Server连接配置

  • 打开SQL Server Management Studio,连接对应实例后右键实例名→属性→连接,勾选「允许远程连接到此服务器」。
  • 打开SQL Server配置管理器,找到SQL Server网络配置→对应实例的协议,确保「Named Pipes」和「TCP/IP」已启用。

4. 核对命令执行上下文

在Package Manager Console执行update-database时,确认「默认项目」选中的是包含ApplicationDbContext的服务器项目(即你的Web项目)。

5. 测试连接有效性

用SSMS尝试使用相同的连接参数连接数据库,若连接失败,说明问题出在SQL Server本身的配置,而非项目代码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:42:03