CSDN-CSDN社区-MS-SQL Server-基础类

收藏 asp.net 链接 sql server 2000 出现如下错误[问题点数:20,结帖人:wlmemail]

  • wlmemail
  • 等 级:
  • 结帖率:
楼主发表于:2008-05-06 09:24:06
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: TCP 提供程序, error: 0 - 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。)

不知道是什么原因,哪位指导下?
回复次数:17
#1楼 得分:0回复于:2008-05-06 09:27:04
默认情况下 SQL2005 是不开启远程连接的

SQL code
如何配置 SQL Server 2005 以允许远程连接
察看本文应用于的产品
文章编号 : 914277 
最后修改 : 2007年11月30日 
修订 : 1.0 
本页

简介

更多信息

为 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 启用远程连接

启用 SQL Server Browser 服务

在 Windows 防火墙中创建例外

在 Windows 防火墙中为 SQL Server 2005 创建例外

在 Windows 防火墙中为 SQL Server Browser 服务创建例外
简介
在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息。在使用任何程序连接到 SQL Server 时都可能会发生此问题。例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息:
Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。
如果没有将 SQL Server 2005 配置为接受远程连接,则可能会发生此问题。默认情况下,SQL Server 2005 Express Edition 和 SQL Server 2005 Developer Edition 不允许远程连接。若要配置 SQL Server 2005 以允许远程连接,请完成以下所有步骤:• 在您要从远程计算机连接到的 SQL Server 实例上启用远程连接。  
• 打开 SQL Server Browser 服务。 
• 配置防火墙以允许与 SQL Server 和 SQL Server Browser 服务相关的网络通讯。 
本文介绍如何完成这些步骤中的每一步。 
回到顶端

更多信息
若要在 SQL Server 2005 实例上启用远程连接并打开 SQL Server Browser 服务,请使用 SQL Server 2005 外围应用配置器工具。在安装 SQL Server 2005 时会安装外围应用配置器工具。 
回到顶端

为 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 启用远程连接
必须为要从远程计算机连接到的每个 SQL Server 2005 实例启用远程连接。为此,请按照下列步骤操作:1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。 
2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。 
3. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。

注意:请在接收到以下消息时单击“确定”:
直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。 
4. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。 

回到顶端

启用 SQL Server Browser 服务
如果您是通过使用实例名称来运行 SQL Server 2005 并且在连接字符串中没有使用特定的 TCP/IP 端口号,则必须启用 SQL Server Browser 服务以允许远程连接。例如,使用 <计算机名>\SQLEXPRESS 的默认实例名称安装的 SQL Server 2005 Express。不管您正在运行多少个 SQL Server 2005 实例,只需要启用一次 SQL Server Browser 服务。若要启用 SQL Server Browser 服务,请执行以下步骤。

重要说明:这些步骤可能会增加您的安全风险。这些步骤还可能导致您的计算机或网络更易于受到恶意用户或恶意软件(如病毒)的攻击。我们之所以推荐本文介绍的这一过程,是为了使程序能够按照设计意图运行,或者为了实现特定的程序功能。我们建议在进行这些更改之前,充分考虑在您的特定环境中实施这一过程可能带来的风险。如果您选择实施此过程,请采用任何适当的附加步骤以保护您的系统。我们建议只有确实需要这一过程时才使用它。1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。 
2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。 
3. 在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。

注意:在单击“自动”选项后,每次启动 Microsoft Windows 时将自动启动 SQL Server Browser 服务。 
4. 单击“启动”,然后单击“确定”。 
注意:在计算机上运行 SQL Server Browser 服务时,计算机显示其上运行的每个 SQL Server 实例的实例名称和连接信息。如果不启用 SQL Server Browser 服务并且通过分配的 TCP 端口直接连接到 SQL Server 实例,则可以降低此风险。本文不讨论如何通过 TCP 端口直接到 SQL Server 实例。有关 SQL Server Browser 服务和连接到 SQL Server 实例的更多信息,请参见《SQL Server 联机丛书》中的以下主题: • SQL Server Browser 服务 
• 连接到 SQL Server 数据库引擎 
• 客户端网络配置 

回到顶端

在 Windows 防火墙中创建例外
这些步骤适用于 Windows XP Service Pack 2 (SP2) 和 Windows Server 2003 中包含的 Windows 防火墙版本。如果您使用的是不同的防火墙系统,请参阅相应的防火墙文档以了解更多信息。 

如果在运行 SQL Server 2005 的计算机上运行防火墙,将会阻止访问 SQL Server 2005 的外部连接,除非 SQL Server 2005 和 SQL Server Browser 服务可以通过防火墙进行通信。必须为每个要接受远程连接的 SQL Server 2005 实例创建一个例外,并为 SQL Server Browser 服务创建一个例外。

在安装 SQL Server 2005 的程序文件时,SQL Server 2005 会使用一个实例 ID 作为路径的一部分。若要为每个 SQL Server 实例创建一个例外,必须确定正确的实例 ID。若要获取实例 ID,请执行以下步骤:1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 配置管理器”。 
2. 在“SQL Server 配置管理器”中,单击右窗格中的“SQL Server Browser 服务”,右键单击主窗口中的实例名称,然后单击“属性”。 
3. 在“SQL Server Browser 属性”页上,单击“高级”选项卡,定位到属性列表中的实例 ID,然后单击“确定”。 
若要打开 Windows 防火墙,请单击“开始”,再单击“运行”,键入 firewall.cpl,然后单击“确定”。
在 Windows 防火墙中为 SQL Server 2005 创建例外
若要在 Windows 防火墙中为 SQL Server 2005 创建例外,请执行以下步骤:1. 在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。 
2. 在“添加程序”窗口中,单击“浏览”。 
3. 单击 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe 可执行程序,单击“打开”,然后单击“确定”。

注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。MSSQL.1 这个占位符代表的是您在前面过程的步骤 3 中获得的实例 ID。 
4. 对于每个需要为其创建例外的 SQL Server 2005 实例,重复步骤 1 到步骤 3。 

在 Windows 防火墙中为 SQL Server Browser 服务创建例外
若要在 Windows 防火墙中为 SQL Server Browser 服务创建例外,请执行以下步骤:1. 在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。 
2. 在“添加程序”窗口中,单击“浏览”。 
3. 单击 C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 可执行程序,单击“打开”,然后单击“确定”。

注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。 

回到顶端


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

这篇文章中的信息适用于:
• Microsoft SQL Server 2005 Developer Edition 
• Microsoft SQL Server 2005 Express Edition 

回到顶端

关键字:  kbhowto kbinfo kbtshoot KB914277 

回到顶端

Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明
#2楼 得分:0回复于:2008-05-06 09:27:38
SQL Server 2005 远程连接

配置TCP/IP属性.
Surface Area Configuration --> Database Engine --> Remote Connections --->Using TCP/IT

SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes) 
SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes
#3楼 得分:0回复于:2008-05-06 09:28:03
可是我用的是sqlserver 2000 不是2005
#4楼 得分:0回复于:2008-05-06 09:30:44
引用 3 楼 wlmemail 的回复:
可是我用的是sqlserver 2000 不是2005


。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: TCP 提供程序, error: 0 - 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。) 

大哥 你用的是 2000 怎么回报这个错误啊
你是不是用 2000的数据库去访问 2005的数据库啊

就是这样也是 那个2005的没有开启远程连接
#5楼 得分:0回复于:2008-05-06 09:34:32
用的是asp.net2.0 + sql sever 2000

报以上错误
#6楼 得分:0回复于:2008-05-06 09:49:51
看看你的数据库是否运行正常
#7楼 得分:0回复于:2008-05-07 23:23:37
我也遇到过这样的问题,情况不知道是否一样。
我连接的服务器在本机上,首先确保SQL Server服务器是正常启动;然后检查连接字符串是否正确。
连接字符串:Server=服务器名;Initial Catalog=数据库名;Integrated Security=True;(用的是windows身份认证)
主要应确保服务器名与要连接的服务器名一致。
#8楼 得分:0回复于:2008-05-07 23:29:55
楼主的标题与内容不符.
如出错,请给出出错时系统的完整提示,方可对症下药,否则大家都在瞎子摸象.
  • cxce用户头像
  • cxce
  • (阿文)
  • 等 级:
#9楼 得分:0回复于:2008-05-11 04:39:33
是asp.net的参数配置问题。
  • hery2002用户头像
  • hery2002
  • (苦*行*僧)
  • 等 级:
  • 2

    2

#10楼 得分:20回复于:2008-05-11 06:57:31
  • hery2002用户头像
  • hery2002
  • (苦*行*僧)
  • 等 级:
  • 2

    2

#11楼 得分:0回复于:2008-05-11 06:58:05
试试,没有测试过哈!
#12楼 得分:0回复于:2008-05-13 10:59:13
现在什么都不懂的,也可以上来冒充专家,随便放几句啊


有时间去看看本人纯C语言开发的网站长长见识吧:

http://cangzhuo.com
#13楼 得分:0回复于:2008-05-16 22:23:44
重启机器后确实好了几天,但是最近又发生了,总不能遇到这种情况就重启吧?
#14楼 得分:0回复于:2008-05-16 23:58:27
引用 2 楼 dawugui 的回复:
SQL Server 2005 远程连接

配置TCP/IP属性. 
Surface Area Configuration --> Database Engine --> Remote Connections --->Using TCP/IT 

SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes) 
SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes
#15楼 得分:0回复于:2008-05-17 10:25:01
引用 3 楼 wlmemail 的回复:
可是我用的是sqlserver 2000 不是2005
#16楼 得分:0回复于:2008-05-20 10:06:48
今天继续出错了,还是那个错误:

.Net SqlClient Data Provider thrown System.Data.SqlClient.SqlException
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: TCP 提供程序, error: 0 - 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup)
在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.SqlClient.SqlConnection.Open()
在 FrameWork.Data.SqlDataProvider.GetObjectList(PopulateDelegate pd, QueryParam pp, Int32& RecordCount) 位置 D:\webhome\FrameWork\Code\FrameWork\FrameWork\Data\SqlDataProvider.cs:行号 751
在 FrameWork.Data.SqlDataProvider.sys_SystemInfoList(QueryParam qp, Int32& RecordCount) 位置 D:\webhome\FrameWork\Code\FrameWork\FrameWork\Data\SqlDataProvider.cs:行号 614
在 FrameWork.BusinessFacade.sys_SystemInfoList(QueryParam qp, Int32& RecordCount) 位置 D:\webhome\FrameWork\Code\FrameWork\FrameWork\BusinessFacade.cs:行号 916
在 FrameWork.FrameSystemInfo..cctor() 位置 D:\webhome\FrameWork\Code\FrameWork\FrameWork\FrameSystemInfo.cs:行号 51
#17楼 得分:0回复于:2008-05-20 14:16:12
顶上来!!!
相关问题
asp.net 链接sql server 2000 出现如下错误
初学者提问: Asp.net 连接Sql server 2000出现的问题,请高手解答 ...
在用asp.net连接SQL Server2000数据库时出现的错误。 .NET技术/ C# ...
远程服务器已经安装了SQL Server 2000,却提示如下错误,何故? .NET ...
一个关于ASP.net 连接SQL server 2000的问题.NET技术/ ASP.NET - CSDN ...
连接sql server2000出现错误.NET技术/ ASP.NET - CSDN社区community ...