当前位置:编程学习 > C#/ASP.NET >>

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provide

报错内容为:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)。
我的设置:
1。SQL Server Configuration Manager中SQL Server 2005服务都已经启动。
2。SQL Server Configuration Manager中SQL Server 2005网络配置下的SQL2005的协议除VIA没启动,其他的全部启动了。
3。SQL Server外围应用配置器中Database Engine中的远程连接选的是本地连接和远程连接(同时使用 TCP/IP 和named pipes)
4。SQL Server外围应用配置器中Analysis Services中的远程连接选择了本地连接和远程连接。

我的代码中用的下面的方法建立的远程连接:
SqlConnection con = new SqlConnection("server=.\\sqlexpress;uid=sa;database=test;");
我的password密码为空。 --------------------编程问答-------------------- 我的代码中用的下面的方法建立的远程连接:
改为
我的代码中用的下面的方法建立的连接:
--------------------编程问答-------------------- 我顶,我狂顶。 --------------------编程问答-------------------- SQL Server 外围应用配置器->远程连接,打开Tcp/Ip 默认的是本地连接,要选中本地连接和远程连接 --------------------编程问答-------------------- SQL Server 外围应用配置器->远程连接,打开Tcp/Ip 默认的是本地连接,要选中本地连接和远程连接
---------------------------------------------------
我已经说了:
3。SQL Server外围应用配置器中Database Engine中的远程连接选的是本地连接和远程连接(同时使用 TCP/IP 和named pipes)
4。SQL Server外围应用配置器中Analysis Services中的远程连接选择了本地连接和远程连接。
-_-# --------------------编程问答-------------------- ding --------------------编程问答-------------------- SQLServer 和MYSQL 一样

默认的是本地连接

要开启 允许远程连接 --------------------编程问答-------------------- server=.\\sqlexpress
---------------------
server后直接写要连的IP --------------------编程问答-------------------- SQL Server configuration Manager -- SQL Server 2005网络配置 -- SQLEXPRESS的协议 -- TCP/IP -- IP地址 动态端口一律 1433 --------------------编程问答-------------------- 检查连接语句
另外有可能是Sql server2005版本不匹配造成。 --------------------编程问答-------------------- 把Connection string 中的 "." 换成 机器名或IP试试:

new SqlConnection("server=机器名\\sqlexpress;uid=sa;database=test;");
--------------------编程问答-------------------- server=ip,端口号
如sever=192.168.1.1,1433l;uid=sa
注意端口号和你实际的端口号一致,数据库名、密码不能错,另外,建议用企业版,如果是开发版,可能不支持远程连接 --------------------编程问答-------------------- sql server在建立与服务器的连接时出错
常见解决办法:
1.检查sql server默认的登陆方式,系统默认是windows集成登陆,如果要使用账号登陆,需要更改为sql混合登陆模式
2.检查配置管理器,开启sql server相关协议
3.检查连接字符串的正确性,主要包括服务器名称,数据库名称,连接模式等
4.检查登陆帐号是否可用,包括帐号是否起用,权限,密码等
5.如果是远程访问本地服务器,需要在外围配置管理器中进行配置

楼主的问题可能在办法1中 --------------------编程问答--------------------
http://tech.sina.com.cn/s/2008-04-22/10392153569.shtml --------------------编程问答-------------------- 把
SqlConnection   con   =   new   SqlConnection( "server=.\\sqlexpress;uid=sa;database=test; "); 
=.\\sqlexpress改成你当前数据库实例名称,如是:"PC名/SQLEXPRESS" --------------------编程问答-------------------- 你试试连接到别的数据库服务器上看看,我上次也有碰到同样的问题,后来发现是我自己sql的问题 --------------------编程问答-------------------- 我的也是这个毛病,根据楼上的意见我把server=.\\sqlexpress中的点改为机器名就好啦。
谢谢楼上 --------------------编程问答-------------------- 帮顶,接分~~~ --------------------编程问答-------------------- 顶 --------------------编程问答--------------------  1. 确保服务器端的数据库中存在sa,并支持混合登录模式.默认安装的时候,可能会忽略建立sa. 

        2. 确保服务器端的数据库是支持远程调用的.打开SQL Server Management Studio,选择该数据库,右键菜单"Properties",在打开的对话框中选择Connections,把Allow remote connections to this server选上. 

        3. 确保服务器端的SQL服务的TCP/IP是Enable的.打开SQL Server Configuration Manager. 选择SQL Server 2005 Network Configuration下的Protocols for SQL2005( 我安装的SQL示例名为SQL2005), 把Named Pipes和TCP/IP都修改为Enabled,默认是Disabled.         

       4. 确保服务器端的SQL实例的远程调用是支持TIP/IP和named pipes的. 打开SQL Server Surface Area Configuration Manager,在打开的页面中选择Surface Area Configuration for Services and Connections.选中实例的Remote Connections,把Using both TCP/IP and named pipes选中.         

        5. 重启服务器端的SQL Server 2005服务,确保SQL Server Agent和SQL Server Browser的服务也启动了. 默认都是需要手动启动,可以改成Automatic.     

        6. 因为服务器端的操作系统是WinXp+SP2,所以还需要检查防火墙.确保防火墙中的1433端口打开了.  

        另外, SQL Server 2005的默认端口可能不是1433. 我们需要手动修改一下. 打开SQL Server Configuration Manager. 选择SQL Server 2005 Network Configuration下的Protocols for SQL2005( 我安装的SQL示例名为SQL2005), 查看TCP/IP的属性.在打开的对话框中选择IP Address, 把到IPAll下的TCP Dymanic Ports改为0,TCP Port的值修改为1433.   

--------------------编程问答-------------------- 选择该数据库,右键菜单"Properties",在打开的对话框中选择Connections,把Allow remote connections to this server选上.  
...
请教下:那个该数据库是指哪个啊, --------------------编程问答-------------------- \\sqlexpress去掉,理由我也不知道,以前我的就是这样解决的。。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,