0

好的,我在这里阅读了一堆相关问题,并且一直在谷歌搜索,但无法弄清楚。

我们的一位客户希望我们在服务器上设置他们的网站,该服务器也运行 Sql Server 和网站的数据库;也就是同一个盒子

该网站无法连接到数据库,但产生错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

我还检查了 Windows 事件日志,看看它是否提供了任何进一步的信息,但它只是重述了相同的消息,没有额外的信息。

服务器是 Windows Server 2008 Standard。
IIS 是包含在该版本 Windows 中的 IIS 版本。
Sql Server 是 Sql Server 2008 R2 标准版。
我有一个我编写的用于连接到 Sql Server 的数据访问库。

  • 我已经Remote Connections在 Sql Server 中验证了(尽管它是同一个框)。
  • 我已经验证SQL and Windows Authentication是否允许 Sql 登录。
  • 我已经通过测试 Windows 应用程序验证了我的连接字符串和数据访问层。
  • 我已经使用 PortQryUI 来验证 Sql Server 是否可用。

我还尝试了连接字符串的各种变体,例如:

  • 我的服务器\实例
  • 本地主机\实例
  • 127.0.0.1\实例
  • (本地)\实例
  • tcp:(本地)\INSTANCE
  • np:(本地)\INSTANCE
  • 。\实例
  • 我的.PUB.IP.添加\实例

所以 Sql Server 似乎设置正确。
我的测试 Windows 应用程序工作正常,确认我的连接字符串是正确的并且我的数据访问层可以连接。

这似乎与 IIS 相关,并且其中的某些设置必须阻止连接。

附加:
Windows 防火墙未运行。
Sql 浏览器服务正在运行。
在服务器配置中启用所有网络协议。

我正在使用一个System.Data.SqlClient.SqlConnectionStringBuilder对象来构建我的连接字符串。为了验证正在使用的 Sql 身份验证,我输出了构建器返回的 ConnectionString:

数据源="(local)\INSTANCE";初始目录=mydb;用户ID=myuser;密码=mypassword

4

0 回答 0