0

我正在尝试连接到现有数据库(非 SQLEXPRESS),但每次我尝试访问它。我收到以下错误:The provider did not return a ProviderManifestToken string.

我将一个SqlConnection实例传递给构造函数DbContext(DbConnection, bool)并在构造函数中实例化连接,因为我只是通过传递连接字符串得到了同样的错误。两种方法都得到相同的错误。

这发生在完整的 SQL Server 2008 和 2005 上。

更新:阅读下面的解决方案。

摘要:收到时始终查找内部异常提供者未返回 ProviderManifestToken 字符串

4

2 回答 2

1

只需尝试在不使用 EF 验证连接字符串是否正确以及所有登录信息有效的情况下打开该连接,因为 EF 有时会使用“提供程序未返回 ProviderManifestToken”来掩盖这些错误,在这种情况下,这意味着无法连接到数据库。

于 2011-10-28T13:20:09.740 回答
0

这似乎是一个连通性问题,每当实体框架发现连通性问题时,它都会通过这个绝妙的消息告诉您,这并不意味着任何事情或与实际问题无关。如果您无权查找在生产中很容易发生这种情况的现有数据库,EF 也可能会在数据库初始化时为您提供此错误。好在他们包括了内部异常,我能够弄清楚这一点。

启用 SQL Browser 服务后,我能够与服务器通信。连接出现问题,启动服务触发了正确的功能。服务再次停止,但连接仍然正常。

顺便说一句,内部异常是:ERROR 40 A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, *error: 40 - Could not open a connection to SQL Server)

于 2011-10-28T14:02:21.540 回答