西安西郊房价,剑与财,6543帝国文明
三.提示连接超时
如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,
不过是由于连接的时间大于允许的时间而导致出错.
这种情况一般会发生在当用户在internet上运行企业管理器来注册另外一台同样在internet上的服务器,
并且是慢速连接时,有可能会导致以上的超时错误.有些情况下,由于局域网的网络问题,也会导致这样的错误.
要解决这样的错误,可以修改客户端的连接超时设置.
默认情况下,通过企业管理器注册另外一台sql server的超时设置是 4 秒,
而查询分析器是 15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因).
具体步骤为:
企业管理器中的设置:
1.在企业管理器中,选择菜单上的"工具",再选择"选项"
2.在弹出的"sql server企业管理器属性"窗口中,点击"高级"选项卡
3.在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 20.
查询分析器中的设置:
工具 -- 选项 -- 连接 -- 将登录超时设置为一个较大的数字
四.大部分机都用tcp/ip才能成功,有次我发现用named pipes才可以?
这是因为在windows 2000以后的操作系统中,ms为解决sql server的安全问题将tcp/ip配置
为sqlserver的默认连接协议,你可以在client network utility中看到tcp/ip和name pipe
的顺序。
你也可以在:
[hkey_local_machine\software\microsoft\mssqlserver\client\supersocketnetlib]
"protocolorder"=hex(7):74,00,63,00,70,00,00,00,00,00
看到默认的协议。
2.怎么在程序中更改named pipes , tcp/ip ,其sql语句怎么写?
你可以在上面提到的注册表的位置修改:
client端:
[hkey_local_machine\software\microsoft\mssqlserver\client\supersocketnetlib]
"protocolorder"=hex(7):74,00,63,00,70,00,00,00,00,00
server端:
[hkey_local_machine\software\microsoft\mssqlserver\mssqlserver\supersocketnetlib]
"protocolorder"=hex(7):74,00,63,00,70,00,00,00,00,00
我的问题应该属于第一类,遗憾的是我按照上面说的方法都不能解决这个问题。我使用:telnet <服务器ip地址> 1433 显示不能正确连接。按照说的方法也不能解决这个问题。有网友说出现1433端口不能连接的因为是sql server 2000没有打补丁的缘故,但我打过sp4后仍然不能正确连接1433端口。
我在web.config里的设置为:
<configuration>
<appsettings>
<!--"data source=sasank;initial catalog=coder;persist security info=false;user id=sa;workstation id=sasank;packet size=4096"-->
<add key="connectionstring" value="server=localhost;trusted_connection=false;user id=sa;password=sa;database=sichuan"/>
</appsettings>
<system.web>
找了好久原因,都不行。
后来试着将数据库连接项改为:
<add key="connectionstring" value="server=192.168.254.60;trusted_connection=false;user id=sa;password=sa;database=sichuan"/>也就是把其中的server改为我的机器在局域网中的ip地址(注意我是本机调试,我把server改为机器名也不行),连接运行,竟然成功了!问题解决了,但我还是不太明白是什么原因?为什么我使用telnet命令打开1433端口不成功?希望有谁能够解释下!
3
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
网友评论