+ -
当前位置:首页 → 问答吧 → provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接

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

时间:2010-07-24

来源:互联网

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接



请问怎么解决啊?

作者: lvhao520121   发布时间: 2010-07-24


连接字符串是否正确  
开始 -> 所有程序 -> MS SQL Server -> 配置工具 -> Sql server外围应用配置器 ->服务和连接的外围应用配置器 -> 打开MSSQLSERVER节点下的Database Engine节点,选择"远程连接",接下来建议选择”同时使用TCP/IP和named pipes ”,确定后,重启数据库服务.
防火墙是否阻止了端口
启动SQL Server Browser服务

作者: wuyq11   发布时间: 2010-07-24

刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,现在总结如下:明白了SQL Server是个网络数据库就可迎刃而解了,简单的分为下面的集中情况。

1. 数据库引擎没有启动。
有两种启动方式:

(1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;

(2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;

使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.

2. 是否已经允许远程连接。
这个部分可以简单的分为4个方面,分别是在 SQL Server上启用远程连接、启用SQL Server 浏览服务、在Windows 防火墙中为SQL Server 2005 创建例外和在Windows 防火墙中为“SQLBrowser”创建例外。下面是几个具体的操作方式,摘自MSDN,个人觉得文章的黑体部分应当特别的一起我们的注意。


在SQLServer 实例上启用远程连接 
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器” 
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器” 
3.然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”, 
再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息: 
“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回 
4.展开“数据库引擎”, 选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止, 
然后单击“启动”,重新启动MSSQLSERVER 服务。

启用 SQLServer 浏览器服务
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器” 
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器” 
3.然后单击展开“SQL Server Browser”, 选中“服务”,在右边“启动类型”选择“自动”, 
再单击“启动”,单击“确定”按钮返回

在Windows 防火墙中为“SQL Server 2005”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序” 
2.在“添加程序窗口”中单击“浏览” 
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”, 
单击“确定”返回 
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。 
4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。

在Windows 防火墙中为“SQLBrowser”创建例外 
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序” 
2.在“添加程序窗口”中单击“浏览” 
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”, 
单击“确定”返回 
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同

作者: jason_dct   发布时间: 2010-07-24

如果还不行
就复制出你的 连接代码

作者: jason_dct   发布时间: 2010-07-24

如果是远程的问题,ls几位说的很清楚了,如果是连接字符串的问题,请参照下面网站
http://www.connectionstrings.com/sql-server-2005

作者: zhoubupt   发布时间: 2010-07-24

1:连接字符串是否有问题,你可以直接用sql企业管理器登陆,看是否能登陆,如果能登陆,说明连接字符串有问题,不能登陆,说明sql数据库配置有问题
2:数据库服务器是否启动
3:数据库-属性-安全性选项卡-sql server和windows身份验证
4:登陆用户名-属性-状态-赋予,启用

作者: hucailin   发布时间: 2010-07-24

内容存入剪贴板

作者: zlcp520   发布时间: 2010-07-24

检查 连接字符串
检查 数据库服务器

作者: xiaozhi_5638   发布时间: 2010-07-24

1.检查连接字符串
2.看看数据库所在的服务器是否能正常访问!

作者: sire168   发布时间: 2010-07-24

String sqlconn = "Data Source=localhost;Initial Catalog=ado_test;User ID=sa;pwd=123;Integrated Security=True";
  SqlConnection myConnection = new SqlConnection(sqlconn);

  //打开数据库连接
  myConnection.Open();
  Response.Write("当前的连接状态为:" + myConnection.State.ToString());
链接语句是这样的,也是出现上述错误,按照上述过程改过了还是不行,怎么回事啊各位

作者: hanzhangjuanjuan   发布时间: 2011-11-24