问题1:超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小
再查询窗口输入exec sp_who2进行查询链接消耗资源
可能出现的情况是程序代码逻辑有问题。与数据库链接后没有进行关闭处理。可能大多地方使用了DataReader进行读取。因为DataReader是独占连接的。每一次打开都占用一个连接池。如果等待程序自动回收的话需要时间,系统默认是15秒后回收。那如果链接次数超出了默认链接数就会报上面的问题。
解决方案:
1.修改比较频繁的数据库访问操作,把DataReader更改为DataAdapter和DataSet来获取数据库数据。
2.WEB.config 里面:在数据库连接加 Max Pool Size = 512
问题2:已成功与服务器建立连接,但是在登录前的握手期间发生错误。
一般出现sql服务停止
解决方案:
1.查看sqlserver服务是否开启,重启sqlserver服务尝试;
2.查看防火墙设置,--》防火墙关闭;
3.看到文章最后介绍可能是tcp/ip的问题,在tcp/ip属性中设置ip为已启用。
问题3:无法打开登录所请求的数据库 "XXX"。登录失败。用户 'sa' 登录失败
一般出现在数据库链接字符串不正确
1.首先确定SQL Server网络配置的TCP/IP协议是否已经是否启用(必须启用才能打开数据库)
2.检查数据库连接字符窜是否准确
如果数据库服务器安装得有多个版本的数据库,一定要选择数据库实例名才能正确打开数据库