您好,欢迎访问三七文档
关于用sqlclient方式连接局域网sqlserver2000数据库超时的解决方案在一次开发项目中,用sqlclient方式连接sqlserver2000,在本地程序运行时连接正常,但访问非本地数据库时出现数据库连接超时的提示。(我的系统配置是Xp,sp2,sqlserver2000个人版,vs2005)A当然,将Sqlserver所在服务器的防火墙关闭是最简单的办法,但容易引起不安全的因素。也可以加上例外进行解决,只允许Sqlserver的tcp/ip1433,udp1434端口例外。B.不更改防火墙的办法:为解决这个问题用了一天时间,不管是增加timeout,还是打sqlserversp4补丁都无济于事。后来发现了sqlclient高级属性中有一项NetworkLibrary。就是这关键的一项设置解决了我的问题。[在注册表中有一项表示最近sqlserver2000数据连接历史(即企业管理器中的SQLserver组),HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect\(local)键值-1040187384:lpc:20080901-1716表示用lpc方式(MicrosoftSQLServer使用LPC(本地过程调用)来实现进程间通信,这个端口提的服务可以被任何人使用。通过发送特殊构建的消息到这个端口,攻击者就可能覆盖部分SQL服务进程的敏感内存,并可能执行任意代码。最好下载补丁)\192.168.0.100键值-1040187384:np:\\192.168.0.100\pipe\sql\query可以看出是用的数据管道所以要根据目标数据库的连接方式确定是采用tip/ip或数据管道]NetworkLibrary=dbnmpntw’命名管道NetworkLibrary=dbmssocn’Tcp/IP系统默认是空,将之改为命名管道后,数据连接成功!大家如果有此问题,请参照以上。'连接字符串connectionStringsaddname=masterconnectionString=DataSource=192.168.0.100;InitialCatalog=master;UserID=sa;NetworkLibrary=dbnmpntw//connectionStrings另一种方式是改为OleDb方式就可以连接上了。
本文标题:关于用sqlclient方式连接局域网sqlserver2000数据库超时的解决方案
链接地址:https://www.777doc.com/doc-2676644 .html