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

在Swagger中运行Entity Framework API时遇登录连接错误求助

解决Entity Framework API通过Swagger运行时的SQL Server连接异常

以下是针对你遇到的System.InvalidOperationException和SqlException(管道另一端无进程)的具体解决步骤:

  • 检查SQL Server服务状态
    打开服务管理器(Win+R输入services.msc),找到对应SQL Server实例(默认是SQL Server (MSSQLSERVER)),确认服务处于正在运行状态。如果未启动,右键选择「启动」。

  • 验证连接字符串配置
    核对appsettings.json中的连接字符串:

    • Windows认证模式示例:
      "ConnectionStrings": {
        "DefaultConnection": "Server=.;Database=YourTargetDB;Trusted_Connection=True;TrustServerCertificate=True;"
      }
      
    • SQL Server认证模式示例(需确保账号密码正确,且SQL Server启用混合认证):
      "ConnectionStrings": {
        "DefaultConnection": "Server=.;Database=YourTargetDB;User Id=YourUsername;Password=YourPassword;TrustServerCertificate=True;"
      }
      

    注:TrustServerCertificate=True可临时绕过SSL证书验证,生产环境建议配置合法证书后移除该参数

  • 启用SQL Server共享内存协议
    打开SQL Server配置管理器,展开「SQL Server网络配置」→ 对应实例的「协议」,确保Shared Memory协议已启用。启用后重启SQL Server服务生效。

  • 添加暂时性故障重试机制
    按照异常提示,在DbContext配置中加入EnableRetryOnFailure提升API容错性,修改Program.cs中的配置代码:

    builder.Services.AddDbContext<YourDbContext>(options =>
        options.UseSqlServer(
            builder.Configuration.GetConnectionString("DefaultConnection"),
            sqlOptions => sqlOptions.EnableRetryOnFailure(
                maxRetryCount: 5,
                maxRetryDelay: TimeSpan.FromSeconds(30),
                errorNumbersToAdd: null
            )
        )
    );
    
  • 检查登录账号权限

    • 若使用Windows认证,确保运行API的账户(本地调试为当前用户,部署后为IIS应用池账户)拥有SQL Server的登录权限及目标数据库的访问权限。
    • 若使用SQL Server认证,确认账号未被锁定,且已被授予目标数据库的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:31:03