ASP.NET连接数据库时出现如下错误,该怎么办?

用户代码未处理 System.Data.SqlClient.SqlException
Message=已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: Shared Memory Provider, error: 0 - 管道已结束。)
Source=.Net SqlClient Data Provider
ErrorCode=-2146232060
Class=20
LineNumber=0
Number=109
Server=.\SQLEXPRESS
State=0
StackTrace:
在 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()
在 DbHelperSQL.PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, String cmdText, SqlParameter[] cmdParms) 位置 C:\Documents and Settings\Administrator\桌面\DotNet.SQLServer\DbHelperSQL.cs:行号 1058
在 DbHelperSQL.ExecuteScalar(CommandType cmdType, String cmdText, SqlParameter[] cmdParms) 位置 C:\Documents and Settings\Administrator\桌面\DotNet.SQLServer\DbHelperSQL.cs:行号 1036
在 DotNet.SQLServer.DiscussControler.GetDiscussCount() 位置 C:\Documents and Settings\Administrator\桌面\DotNet.SQLServer\DiscussControler.cs:行号 294
在 DotNet.discuss.index.dlBinder() 位置 C:\Documents and Settings\Administrator\桌面\DotNet\discuss\index.aspx.cs:行号 50
在 DotNet.discuss.index.Page_Load(Object sender, EventArgs e) 位置 C:\Documents and Settings\Administrator\桌面\DotNet\discuss\index.aspx.cs:行号 40
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:

这是比较全的一个解释。看了之后,相信你可以找到你的错误原因了。如下:

一、为 SQL 启用远程连接

1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。
注意:请在接收到以下消息时单击“确定”:
直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。
4. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。
二、启用 SQL Server Browser 服务
1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3. 在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。
注意:在单击“自动”选项后,每次启动 Microsoft Windows 时将自动启动 SQL Server Browser 服务。
4. 单击“启动”,然后单击“确定”。
三、在 Windows 防火墙中为SQL Server 2005 创建例外
1. 在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。
2. 在“添加程序”窗口中,单击“浏览”。
3. 单击 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe 可执行程序,单击“打开”,然后单击“确定”。
注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。
四、在 Windows 防火墙中为 SQL Server Browser 服务创建例外
1. 在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。
2. 在“添加程序”窗口中,单击“浏览”。
3. 单击 C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 可执行程序,单击“打开”,然后单击“确定”。
注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。
五、远程连接端口设置(很关键的一步,很多方法只讲了一到四步,却没有讲到第五步)
1、在服务器上打开SQL Server Configuration Manager。选择SQL Server配置治理器->SQL Server 2005网络配置->MSSQLSERVER的协议->TCP/IP,在弹出对话框中选择IP地址->IPALL->TCP端口,设置为可用端口。(如果默认的1433端口老是连接不上,你就设置为你确认已经打开的端口试试,如21端口等)
2、在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。

按照上面的步骤,就可以完成远程连接数据库的功能!

可以在本机进行测试:打开SQL2005,登陆时输入自己的IP,用户名,密码进行测试!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-18
如果你连接的是远程服务器,是远程服务器不允许链接。
打开SQL SERVER 2005菜单中的配置工具下的SQL SERVER Configuration Manager.点击窗体中,打开SQL SERVER 2005 网络配置的下节点,选择MSSQLSERVER的协议。把右边窗口的TCP/IP的属性已禁用,改为已启用,就OK了本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网