在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。

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

源错误:

行 39: {
行 40: con = new SqlConnection(connstring);
行 41: con.Open();
行 42: }
行 43: /// <summary>

源文件: f:\毕业设计\资料\C#二手手机在线销售系统的设计与实现\源代码\ershoushouji\App_Code\SqlHelper.cs 行: 41

1.打开Sql server 管理配置器

2.点击SqlExpress的协议,我们要启动所有状态。

3.选择TCP/IP,点击右键,选择属性,我们修改连接数据库的端口地址,非常重要

4.修改三处,第一你查看下跳出来的对话框,里面有好多TCP/IP的端口。我们要找的是三处。

5.IP地址 是自己电脑的地址 在TCP端口添加1433,然后选择启动

 

6. IP地址是127.0.0.1的是默认的,也要改掉,如上

 

7.IPALL是否是表示所有端口??反正也要修改下端口地址了。

8.重新启动服务,不支持热修改,修改重新启动服务。

 

好了,这就是修改好了端口了。

 

 

下面贴代码

 

   这个代码是可以运行的,所以您无需担心,你写的代码是有问题的,你要修改的就是习惯你的数据库

 

C#代码  

strConnection += "initial catalog=修改成为你自己创建的数据库;Data Source=localhost;";  

 

 

C#代码  

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

using System.Data.SqlClient;  

  

namespace dbApp  

{  

    class Program  

    {  

        static void Main(string[] args)  

        {  

            Console.WriteLine("Hello Word1");  

            Program.LinkDB();  

            Console.WriteLine("Hello Word3");  

            Console.ReadLine();  

        }  

  

  

        static void LinkDB()  

        {  

            Console.WriteLine("Hello Word2");  

            string strConnection = "uid=sa; password=sa; ";  

            strConnection += "initial catalog=netdb;Data Source=localhost;";  

            strConnection += "Connect Timeout=3";  

  

           // string constr = "server=.;database=myschool;integrated security=SSPI";  

           //string constr = "server=.;database=myschool;uid=sa;pwd=sa";    

           // strConnection = "data source=.;initial catalog=netdb;user id=sa;pwd=sa";  

  

             

  

            try  

            {  

  

  

                SqlConnection objConnection = new SqlConnection(strConnection);  

  

  

              //  SqlConnection objConnection = new SqlConnection(strConnection);  

  

                objConnection.Open();  

                Console.WriteLine("连接数据库成功");  

                objConnection.Close();  

            }  

            catch (Exception ex)  

            {  

  

                Console.WriteLine(ex.Message);  

            }  

  

  

  

  

        }  

  

  

  

    }  

}  

 

 

 

   连接成功的效果

 

 

--------------------------------------------------------------------------------------------------------------

 

如果你还是连不上,那么再去查看如下的配置:

 

这个你在查看下。

 

然后重新启动下你的电脑,在连接下代码试试看。你首先要保证,你通过sa 可以进入到sql server2005

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-31

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)。

具体解决方法如下:

1、打开SQL Server2008,在对象资源管理器下  安全性->登录名->找到自己的登陆账号,我的是sa,右键->属性->状态,把“设置”下选“授予”和“登陆”下选“启用”,确定退出;

2、在开始菜单下找到并打开“SQL Server 配置管理器”,按如图的设置;

3、打开SQL Server2008选择数据库,右键->方面。下拉框选择“服务器配置”和“外围应用配置器”。按图设置;

4、这个我是认为最重要的解决办法!在Windows 防火墙中为“SQL Server 2008”创建例外,在控制面板->系统和安全->Windows 防火墙->高级设置。

规则类型选“端口”,协议和端口选“TCP”.“特定本地端口”那填写端口号为:1433,下一步。操作“允许连接”。下一步,继续下一步。

名称可随意写,这里就写“sql server2008”,完成;

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

本回答被网友采纳
第2个回答  2011-03-08
刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 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 安装不同而不同。

在使用.NET开发进行时,会遇到使用连接字符串连接SQL Server 2005数据库使用机器名称和localhost都能连接,但是使用IP地址却不能连接的问题,解决的办法是在SQL Server实例上启用本地和远程连接,并且在选择协议的时候使用TCP/IP和命名管道服务即可解决。
第3个回答  2020-04-16
第4个回答  2012-12-12
那告诉你原因,服务器名是用机器名或者ip后接数据库实例名连接的
形式大概是Your-pc\MSSqlserver或者192.168.1.100\MSSqlserver
因为mssqlserver是默认实例名,默认端口1433,所以实例名可以省略
即直接用你的机器名或者ip地址即可,英文点号,(local)以及127.0.0.1都代表本机
如果你是命名实例,实例名比如是SQL1,那么需要后接实例名才可连接,即
Your-pc\SQL1
相似回答