我的Asp.net C# Web程序,用了一段时间后他CPU自动疯涨

时间:2021-07-31 17:04:49
我的Asp.net C# Web程序,用了一段时间后出现问题了。

服务器我们是Window2003 SP2 数据库是MSSQL2005 ,.net 2.0框架。
情况是这样的,我们是用动网的代码生成器做的数据层。项目开发进入测试阶段后,我们发现系统在被3个以上用户使用后,系统进程中W3wp.exe开始疯涨,一度涨到100% ,同时内存也跟着涨。

这个项目我们做了对立的应用程序进程池,稍微缓解了一下,但是我们认为是程序问题,但是始终测试不出来。程序于数据库连接正常。每次使用大改10分钟左右,就会死掉。程序提示找不到表字段。


重新启动IIS后,一切正常。
非常奇怪,折磨了我们一个星期的时间了,希望高手指点一二。

16 个解决方案

#1


程序提示找不到表字段?
是不是内存完了以后这个提示就出来了?

#2



要是程序的问题,肯定能测试出来…… 可能测试方法不太合适

如果3个以上用户连接,IIS都疯狂吃内存的话,程序的优化程度还需要在努力一点了…… 

#3


这个比较难猜了.可能出现死锁了.也可能是数据的问题导致了递归或者死循环..在出现这个问题的时候尝试着把SQL语句抓出来看看.

#4


涨了以后就出来这号问题了。

#5


数据操作层都有基类,尝试在基类中添加 “写SQL操作日志的文件” 每次读写数据库都写一次文件日志,并且记录操作时间和SQL语句,抓10个用户的操作看看,估计能有点收获

#6


3个用户以上,他也不是,一定上了第三个就涨,他是过了一段时间就涨。

3楼 的方法我试试先。

#7


内存和CPU他不是有规律的涨,他是一下就涨起来了,我都措手不及。

#8


估计是没dispose close 等释放操作

#9


MSSQL2005,开发版?

#10


不知道你的异常是怎么处理的,也有可能是出现异常的时候循环调用了.

#11


用到ado.net中的东西,看看有没有没关的

#12


你需要看看是不是什么特定的操作导致这样的;
如果仅仅测试的话,不会时间上有规律的;

#13


规律好难找,我现在用排除发,一个模块一个模块的排除。
这个是错误页面。÷÷

我的Asp.net C# Web程序,用了一段时间后他CPU自动疯涨

#14


数据库被搞定啦?

#15


数据库被锁啊。我里面有一些事务,有这个可能。检查看看先。

#16


估计是数据库连接没有及时关闭,以及事务没有提交等问题,这个还要看具体到底打开哪个页面,点击哪个按钮导致上述问题。还有可能是缓存用的太多,届时Session也会丢失。

#1


程序提示找不到表字段?
是不是内存完了以后这个提示就出来了?

#2



要是程序的问题,肯定能测试出来…… 可能测试方法不太合适

如果3个以上用户连接,IIS都疯狂吃内存的话,程序的优化程度还需要在努力一点了…… 

#3


这个比较难猜了.可能出现死锁了.也可能是数据的问题导致了递归或者死循环..在出现这个问题的时候尝试着把SQL语句抓出来看看.

#4


涨了以后就出来这号问题了。

#5


数据操作层都有基类,尝试在基类中添加 “写SQL操作日志的文件” 每次读写数据库都写一次文件日志,并且记录操作时间和SQL语句,抓10个用户的操作看看,估计能有点收获

#6


3个用户以上,他也不是,一定上了第三个就涨,他是过了一段时间就涨。

3楼 的方法我试试先。

#7


内存和CPU他不是有规律的涨,他是一下就涨起来了,我都措手不及。

#8


估计是没dispose close 等释放操作

#9


MSSQL2005,开发版?

#10


不知道你的异常是怎么处理的,也有可能是出现异常的时候循环调用了.

#11


用到ado.net中的东西,看看有没有没关的

#12


你需要看看是不是什么特定的操作导致这样的;
如果仅仅测试的话,不会时间上有规律的;

#13


规律好难找,我现在用排除发,一个模块一个模块的排除。
这个是错误页面。÷÷

我的Asp.net C# Web程序,用了一段时间后他CPU自动疯涨

#14


数据库被搞定啦?

#15


数据库被锁啊。我里面有一些事务,有这个可能。检查看看先。

#16


估计是数据库连接没有及时关闭,以及事务没有提交等问题,这个还要看具体到底打开哪个页面,点击哪个按钮导致上述问题。还有可能是缓存用的太多,届时Session也会丢失。