【问题标题】:No process is on the other end of pipe while connecting to SQL Server in an ASP.NET Core application via EF Core通过 EF Core 连接到 ASP.NET Core 应用程序中的 SQL Server 时,管道的另一端没有进程
【发布时间】:2020-07-26 08:18:52
【问题描述】:

我可以使用 SQL Server 登录名从 SSMS 登录到 SQL Server 2017。但是当我使用 EF Core 调试我的 Web API 项目时,我得到了一个异常

管道的另一端没有进程

连接字符串如下

"ConnectionStrings": {
    "InventoryConnection": "Data Source=localhost;Initial Catalog=InventoryDB;user=aXXXXX;password=XXXXX"
} 

我检查了 SQL Server 配置管理器并启用了 TCP/IP 和 NamedPipes 和 SharedMemory,协议顺序列表是 SharedMemeory 1、TCP/IP 2 和 Named Pipes 3。我尝试了pinal dev 给出的所有解决方案但仍然错误仍然存​​在。

我重新启动了服务,重新启动了我的电脑 - 但没有任何效果。我错过了什么吗?

【问题讨论】:

    标签: c# sql-server entity-framework-core


    【解决方案1】:

    您应该在连接字符串中使用“用户 ID”而不是“用户”。

    你能检查一下这个连接字符串吗?

    Server=.;Database=InventoryDB;User Id=aXXXXX;Password=XXXXX;
    

    有关更多信息,您可以查看此网站: https://www.connectionstrings.com/sql-server/

    【讨论】:

      【解决方案2】:

      错误是因为没有我在连接字符串中指定的名称的数据库。我期待EF Core 创建一个新数据库。但事实证明我错了。 我真的搞错了EF CoreEF 6.x 在初始数据库创建方面的不同之处。发布问题后,我偶然发现了创建 EF 迁移以创建新数据库的点。我想知道在应用程序首次运行时是否有其他方法可以创建初始数据库(这就是 EF 6.x 支持的方式)。我知道Context.Database.EnsureCreated() 也达到了同样的效果。

      【讨论】:

      • 我在 SO 上关于 EF Core 的许多答案都包含简单且功能齐全的控制台项目,这些项目可以即时创建数据库。这是我的random answer 这样做的。
      【解决方案3】:

      我正在尝试使用 EF Core 5.0 的新控制台应用程序,但遇到了与上述类似的一些错误。我的 LocalDB 中的全新数据库条目 - 我还没有安装 Microsoft.EntityFrameworkCore.Tools。一旦我这样做并执行了 Powershell NuGet 控制台命令

      添加迁移初始化

      更新数据库

      命令有效 - 我的连接按预期工作。我只是不记得这样做 - 这就是我的根本原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-31
        • 2022-06-19
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 1970-01-01
        • 2017-07-14
        相关资源
        最近更新 更多