带有非SQLEXPRESS实例的DbContext

时间:2011-10-27 16:29:12

标签: entity-framework-4.1 dbcontext

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

尝试打开该连接而不使用EF来验证连接字符串是否正确并且所有登录信息都有效,因为EF有时会使用“提供程序未返回ProviderManifestToken”来掩盖这些错误case表示无法连接数据库。

答案 1 :(得分: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)