【问题标题】:Named Pipes Provider, error: 40 - Could not open a connection to SQL Server?命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接?
【发布时间】:2011-03-08 04:45:27
【问题描述】:

在我们的项目中,用户使用 NHibernate 2.1.1 和 SQL Server 2008 和 .net 3.5。

我在使用 SQL Server 时遇到了奇怪的问题。我们开发了windows服务,安装了它,它运行了一段时间。不幸的是,当我停止 SQL Server 时,NHibernate 抛出异常

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

但是重启SQL Server后,无法连接到SQL Server,仍然报同样的错误。但我可以通过 Query Analyzer / Management Studio 连接 SQL Server。

请任何机构可以帮助我解决问题?

谢谢

nRk

【问题讨论】:

  • analyzer/studio 是否也在使用*命名管道提供程序?
  • 没有。它使用默认协议。

标签: sql-server sql-server-2008 ado.net database-connection connection-pooling


【解决方案1】:

转到\开始菜单\程序\Microsoft SQL Server 2008\Configuration Tools,启动 SQL Server 配置管理器并启用您需要的连接协议。

【讨论】:

  • 所有必要的协议都已启用。但以前工作正常,只是重新启动后出现问题......为什么会发生......?
【解决方案2】:

我知道你已经有了答案,但我得到了同样的错误,但解决方案不同,也许这对其他人有帮助。

当我设置 ASP.Net 以将会话变量存储在数据库中时,我遇到了同样的错误

提供者:命名管道提供者,错误:40 - 无法打开 连接到 SQL Server

我的问题的原因是在我连接的 SQL Server 上找不到数据库。正确创建数据库后,一切正常。

考虑到问题的原因,我预计会出现错误消息

提供者:SQL 网络接口,错误:26 - 错误定位 服务器/实例指定

【讨论】:

    【解决方案3】:

    检查以下内容 (a) 首先确保该实例的数据库服务是 正在运行...使用配置管理器 (b) 如果服务正在运行,请检查这是一个命名实例。在 这种情况是 SQL Server Browser 服务正在运行。 (c) 检查本地和远程的远程连接是否启用 使用 TCP/IP 连接 - 使用 SQL Server 外围应用配置 查看和配置工具 (d) 检查所有协议是否启用 -- 使用 SQL 配置管理器 -- SQL Server 网络配置 -- MSSQLSERVER 协议 -- 启用 TCP/IP 和 NamedPipe

    【讨论】:

      【解决方案4】:

      我必须“滚动到底部并在 IPAll 下设置 TCP 端口,(默认为 1433)”,如本答案所述

      How can I make MS SQL Server available for connections?

      【讨论】:

        【解决方案5】:

        在 Sql Server Configuration Manager 程序中,启动 SQL SERVER,启用 TCP/IP 连接。如果需要,请允许防火墙中的端口。

        【讨论】:

          猜你喜欢
          • 2013-02-18
          • 2013-05-14
          • 2017-12-20
          • 1970-01-01
          • 2016-09-28
          • 1970-01-01
          • 2012-04-14
          相关资源
          最近更新 更多