后端开发

网络新概念,云计算、大数据、O2O、电商。。。。

IIS+asp.net 在.net4.0下运行,运行一段时间就会出现如下提示,重启IIS后正常:

超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

网上说主要原因是因为asp.net调用数据库后连接没有关闭造成的,同时发现在数据库中sp_who2观察有连接不断增加,但负载并不多;

主要修改的地方有:

1、web.config文件(感觉作用不大)<add key="ConnStr" value="server=127.0.0.1;Trusted_Connection=false;uid=sa;pwd=; Max Pool Size=512;Connection Lifetime=300; database=db" />

2、调用数据库后及时关闭连接,这个应该有作用:

            myReader.Close();
            myDataAdapter.Dispose();

            myCommand.Dispose();

            myConnection.Close();

            myConnection.Dispose();

3、最新的.net补丁,重启服务器;

打了补丁的同时也进行了两个文件的关闭连接,然后就好了sp_who连接数量一直在几十个,具体是补丁问题还是conn问题,不清楚,可能都有吧;