问题描述
我的Asp.netC#Web程序,用了一段时间后出现问题了。服务器我们是Window2003SP2数据库是MSSQL2005,.net2.0框架。情况是这样的,我们是用动网的代码生成器做的数据层。项目开发进入测试阶段后,我们发现系统在被3个以上用户使用后,系统进程中W3wp.exe开始疯涨,一度涨到100%,同时内存也跟着涨。这个项目我们做了对立的应用程序进程池,稍微缓解了一下,但是我们认为是程序问题,但是始终测试不出来。程序于数据库连接正常。每次使用大改10分钟左右,就会死掉。程序提示找不到表字段。重新启动IIS后,一切正常。非常奇怪,折磨了我们一个星期的时间了,希望高手指点一二。
解决方案
解决方案二:
程序提示找不到表字段?是不是内存完了以后这个提示就出来了?
解决方案三:
要是程序的问题,肯定能测试出来……可能测试方法不太合适如果3个以上用户连接,IIS都疯狂吃内存的话,程序的优化程度还需要在努力一点了……
解决方案四:
这个比较难猜了.可能出现死锁了.也可能是数据的问题导致了递归或者死循环..在出现这个问题的时候尝试着把SQL语句抓出来看看.
解决方案五:
涨了以后就出来这号问题了。
解决方案六:
数据操作层都有基类,尝试在基类中添加“写SQL操作日志的文件”每次读写数据库都写一次文件日志,并且记录操作时间和SQL语句,抓10个用户的操作看看,估计能有点收获
解决方案七:
3个用户以上,他也不是,一定上了第三个就涨,他是过了一段时间就涨。3楼的方法我试试先。
解决方案八:
内存和CPU他不是有规律的涨,他是一下就涨起来了,我都措手不及。
解决方案九:
估计是没disposeclose等释放操作
解决方案十:
MSSQL2005,开发版?
解决方案十一:
不知道你的异常是怎么处理的,也有可能是出现异常的时候循环调用了.
解决方案十二:
用到ado.net中的东西,看看有没有没关的
解决方案十三:
你需要看看是不是什么特定的操作导致这样的;如果仅仅测试的话,不会时间上有规律的;
解决方案十四:
规律好难找,我现在用排除发,一个模块一个模块的排除。这个是错误页面。÷÷
解决方案十五:
数据库被搞定啦?
解决方案:
数据库被锁啊。我里面有一些事务,有这个可能。检查看看先。
解决方案:
估计是数据库连接没有及时关闭,以及事务没有提交等问题,这个还要看具体到底打开哪个页面,点击哪个按钮导致上述问题。还有可能是缓存用的太多,届时Session也会丢失。