Entity framework 无法连接到网络数据库

Entity framework unable to connect to network database

我的桌面上有一个 SQL Server 2008 数据库,我想在我的笔记本电脑开发的项目中访问它。

我使用服务器资源管理器 window(数据连接 > 添加连接)测试了从笔记本电脑到数据库的连接,一切正常 运行。数据库已找到,我可以访问我的表并查看 insde 中的数据。

然后我添加了一个 ADO.NET 实体数据模型 (= Entity Framework)。集成工作正常:它创建了正确的 类,我可以编辑模型,根据我将从服务器传递的修改更新它,...

然后当我 运行 我的项目时,它需要使用 Entity Framework 创建的 类 读取一些数据,但它崩溃了:

Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgment. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=63057;handshake=2;

我仔细看了看,发现有些人对 Sql 服务器配置管理器中的 TCP/IP 配置有疑问,如 here 所述。进行了修改,重新启动了我的所有服务,但并没有解决我的问题。

有没有人知道我该如何解决这个问题(请注意,我在没有防火墙的情况下尝试过,所以它似乎不是来自于此)。此外,如果有帮助,请考虑以下内容:

确保在 运行 项目之前您已经分离了数据库。通过右键单击位于 AppData 文件夹中的数据库,然后单击 Detach

来执行此操作

我通过检查连接向导的 "Advanced" 部分提供的选项找到了解决方案。可以强制网络库(TCP/IP、命名管道、共享内存或 VIA),但默认情况下它是空白的(我猜自动选择了错误的选项)。

我都试过了,只有 "Named Pipes" 对我有用。

可以在连接字符串中手动修改,添加

;network library=dbnmpntw