关于用sqlclient方式连接局域网sqlserver2000数据库超时的解决方案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

关于用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方式就可以连接上了。

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功