服务器的操作系统是2003,是域控制器,所有客户端在同一网段,且同一域中.彼此之间能ping通,可以互访.我适用odbc配置系统dsn,使用SQL.在客户端配置网络库时,使用命名管道能通,使用tcp/ip,就不通了.
报错:
连接失败
SQL State:'01000'
SQL Server 错误:10061
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets] ConnectionOpen (conect()).
连接失败
SQLState:'08001'
SQL Server 错误:17
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets] SQL Server 不存在或访问被拒绝
运行svrnetcn,发现命名管道总在tcp/ip的前面,原以为是不是因为命名管道的级别高,删命名管道,还是不通,估计不是这个问题.听说如果服务器使用的是2000,就可以.使用2003就不行.所以如果这时真的话,我认为最大的可能性应该在系统的设置上.
于是,我查看日志.获得以下信息:
您运行的 Microsoft SQL Server 2000 版本或 Microsoft SQL Server 2000 Desktop Engine (也称为 MSDE) 和 Microsoft Windows Server 2003 家族使用时存在已知的 安全弱点。为了减少计算机被某些病毒的攻击,Microsoft SQL Server 2000,MSDE 或 两者的 TCP/IP 和 UDP 网络端口被禁用。要启用这些端口,您必须从 http://www.microsoft.com/sql/downloads/default.asp 或 http://www.microsoft.com/china/sql/downloads/default.asp 安装一个修补程序, 或 Microsoft SQL Server 2000 或 MSDE 的最新服务包。
看来是2003独有的问题了。为了安全考虑的。试想现在有些黑客入侵,就使用1433端口。2003先禁掉它,使有道理的。OK,想通了。就动手了。安装过程中别忘了钩上“对所有数据库启用跨数据库的所有权连接”,当然这个是微软不推荐的。因为存在安全隐患阿。好。打了补丁重启,完事。可以连接了。