实体框架 - 底层提供程序在Open-SQL上失败

时间:2014-04-05 22:50:03

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

我有两个小网页用于服务器中的项目,他们没有遇到任何问题,但是当我输入我的登录名和密码时,我收到了一条错误消息"基础提供商在Open&#34上失败了;

我编辑了代码,因此我可以获得内部异常消息,该消息是"在建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)"。

当我在Visual Studio中运行应用程序时,使用服务器连接字符串,一切正常,我甚至可以从另一台服务器中的其他应用程序访问数据库,因此SQL接受远程连接。

问题是我无法从与SQL数据库位于同一服务器的应用程序访问数据库。这是一个新问题,因为它们已经运行了几个月,并且它们今天突然标记了这个错误。

1 个答案:

答案 0 :(得分:1)

在Visual Studio中,除非连接字符串中有明确的SQL用户名和密码,否则连接将与您一样。在IIS下,它将作为IIS工作进程。假设您使用集成安全性,那么除非IIS AppPool Identity是可以访问SQL Server上数据库的用户,否则您的应用程序将无法连接到数据库。在这种情况下,修复方法是为站点创建一个SQL帐户,使用站点工作所需的最小权限,并将其放在连接字符串中。

或者,可能是SQL Server表面区域配置中未配置某些协议(命名管道,远程连接等)。