【问题标题】:error: 40 - Could not open a connection to SQL Server错误:40 - 无法打开与 SQL Server 的连接
【发布时间】:2014-10-03 11:50:57
【问题描述】:

我在尝试登录 asp.net 应用程序时遇到以下错误。

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

在我的web.config 文件中,连接字符串是这样的

<add name="DefaultConnection" 
     connectionString="Server=1.1.1.1; Database=XYZ; Uid=user; Pwd=pswd;" 
     providerName="System.Data.SqlClient" />

Web 和数据库服务器是分开的。同一 Web 服务器上的其他网站指向同一数据库服务器上的不同数据库,工作正常。

当我在 SQL Server 2008 R2(安全 -> 用户 -> 用户)中双击用户名时,出现以下错误:

我检查了 SQL Server 服务,它们运行良好。只是想知道这个用户在 SQL Server 中是否有任何关系。

【问题讨论】:

  • 看起来该用户记录非常有问题...
  • 创建一个新用户进行测试。如果它有效,那么您就知道问题出在那个用户身上。

标签: c# asp.net sql-server sql-server-2008-r2 connection-string


【解决方案1】:

此错误与用户无关。检查以确保通过 SQL Server 配置管理器实用程序在 SQL Server 上启用了远程连接,并且防火墙上的端口 1433 已打开。您可以使用 TELNET 或下面的 Powershell 命令测试端口连接性。

1433 | % { echo ((new-object Net.Sockets.TcpClient).Connect("YourServerName",$_)) "server listening on TCP port $_" }

【讨论】:

  • 收到此消息“服务器正在侦听端口 1433”
  • @user1263981,为什么连接字符串中有3306端口?您是否尝试连接到同一服务器上的单独命名实例,而不是正在运行的默认实例?如果您从连接字符串中删除端口号,我希望连接能够正常工作。
  • 我从没提过 3306
  • @user1263981,您帖子中的连接字符串指定“port=3306”。如果删除它,您应该能够连接到 SQL Server 正在侦听的默认 1433 端口。
  • @DanGuzman 嗨,丹。在这里你的知识的忠实粉丝。如果这个 error 40 是中间的怎么办?一个长时间运行的工作在第 4 小时开始遇到它。然后 10 分钟后继续进行,就像它从未发生过一样?
【解决方案2】:

命名管道协议(见错误)仅用于同一台机器上的连接,这意味着(可能)在 SQL Server 上没有为外部启用 tcp/ip 协议沟通。

另一个可能的错误原因是sql server的named instance;在您的连接字符串上,您将服务器的 IP 地址放在没有实例名称的情况下(最好使用机器名称并将 IP 放在 DNS 或主机文件中),这意味着您的 sql 服务器没有命名实例是正确的?要检查命名实例,请参阅服务。

其他可能的问题可能:

  • 防火墙(在客户端和服务器上),
  • sql server 的监听端口。
  • 尝试连接到 sql server 的用户(密码错误、已禁用、对 db 和/或 sql 实例没有权限)

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,出于某种原因,我不得不添加标准 SQL 端口 (1433),然后一切正常。你的情况是:

    <add name="DefaultConnection" 
     connectionString="Server=1.1.1.1,1433; Database=XYZ; Uid=user; Pwd=pswd;" 
     providerName="System.Data.SqlClient" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 2011-03-08
      • 2013-05-14
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      相关资源
      最近更新 更多