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 所述。进行了修改,重新启动了我的所有服务,但并没有解决我的问题。
有没有人知道我该如何解决这个问题(请注意,我在没有防火墙的情况下尝试过,所以它似乎不是来自于此)。此外,如果有帮助,请考虑以下内容:
- 笔记本电脑通过 wifi 路由器(互联网盒子)连接
- 该项目托管在服务器 hardrives 上
- 项目运行来自服务器
确保在 运行 项目之前您已经分离了数据库。通过右键单击位于 AppData
文件夹中的数据库,然后单击 Detach
来执行此操作
我通过检查连接向导的 "Advanced" 部分提供的选项找到了解决方案。可以强制网络库(TCP/IP、命名管道、共享内存或 VIA),但默认情况下它是空白的(我猜自动选择了错误的选项)。
我都试过了,只有 "Named Pipes" 对我有用。
可以在连接字符串中手动修改,添加
;network library=dbnmpntw
我的桌面上有一个 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 所述。进行了修改,重新启动了我的所有服务,但并没有解决我的问题。
有没有人知道我该如何解决这个问题(请注意,我在没有防火墙的情况下尝试过,所以它似乎不是来自于此)。此外,如果有帮助,请考虑以下内容:
- 笔记本电脑通过 wifi 路由器(互联网盒子)连接
- 该项目托管在服务器 hardrives 上
- 项目运行来自服务器
确保在 运行 项目之前您已经分离了数据库。通过右键单击位于 AppData
文件夹中的数据库,然后单击 Detach
我通过检查连接向导的 "Advanced" 部分提供的选项找到了解决方案。可以强制网络库(TCP/IP、命名管道、共享内存或 VIA),但默认情况下它是空白的(我猜自动选择了错误的选项)。
我都试过了,只有 "Named Pipes" 对我有用。
可以在连接字符串中手动修改,添加
;network library=dbnmpntw