命名管道提供程序,错误:40 - 无法打开与SQL Server的连接?

时间:2010-06-25 08:48:43

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

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

我面临着SQL Server的奇怪问题。我们开发了Windows服务,安装它,它运行良好一段时间。不幸的是,当我停止SQL Server时,NHibernate会抛出异常

  

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

但重新启动SQL Server后,它无法连接到SQL Server,仍然会抛出相同的错误。但我能够通过查询分析器/ Management Studio连接SQL Server。

请任何人帮我解决问题吗?

由于

NRK

5 个答案:

答案 0 :(得分:1)

转到\ Start Menu \ Programs \ Microsoft SQL Server 2008 \ Configuration Tools,启动SQL Server配置管理器并启用所需的连接协议。

答案 1 :(得分:1)

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

当我设置ASP.Net将会话变量存储在DB中时,我得到了相同的错误

  

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

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

鉴于问题的原因,我原本期望错误消息

  

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我不得不“滚动到底部并在IPAll下设置TCP端口,默认为1433”,如本回答所述

How can I make MS SQL Server available for connections?

答案 4 :(得分:0)

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