实体框架 - 基础提供程序在打开 - SQL 上失败



我在服务器上有两个用于应用程序的小网页,它们工作没有问题,但是突然当我输入登录名和密码时,我收到一条错误消息"底层提供程序在打开时失败"。

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

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

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

在 Visual Studio 中,除非连接字符串中有显式的 SQL 用户名和密码,否则连接将与您一样。在 IIS 下,它将作为 IIS 工作进程。假设您使用的是集成安全性,则您的应用程序将无法连接到数据库,除非 IIS 应用程序池标识是有权访问 SQL Server 上的数据库的用户。在这种情况下,解决方法是为站点创建一个 SQL 帐户,以使用站点工作所需的最低权限,并将这些权限放在连接字符串中。

或者,可能是在 SQL Server 外围应用配置中未配置某些协议(命名管道、远程连接等)。

最新更新