有一个内部的WEB系统,w3wp.exe进程偶尔会把服务器上的内存吃到2G,然后应用程序就异常了。一般几天会出现一次。现在的问题是,如何找到究竟是哪些代码把内存给吃掉了,平常的话内存都不会到1G的。

解决方案 »

  1.   

    1、查看错误日志
    2、为IIS应用程序池设置自动回收 在每天凌晨回收一下应用程序池 
      

  2.   


    为IIS应用程序池设置自动回收
    +1
      

  3.   

    ANTS Memory Profiler
    http://www.red-gate.com/products/ants_memory_profiler/index.htm?utm_source=google&utm_medium=cpc&utm_content=unmet_need&utm_campaign=antsmemoryprofiler&gclid=CMPmu4DXv6MCFQy3bwod-3bnng
    可以下载试用版看看。我用过,没差出来。最后发现时XmlSerializer 内存泄露
      

  4.   

    我是楼主:异常信息就是:[错误信息]: 发生类型为 System.OutOfMemoryException 的异常
      

  5.   

    [错误信息]: 发生类型为 System.OutOfMemoryException 的异常
      

  6.   

    DateSet 
    缓存
    有无垃圾回收机制 
      

  7.   

    个人觉得你最后还是得查sql语句  sql优化
      

  8.   

    应该不是SQL语句的原因吧。怀疑是Session的原因,因为用Session的地方还是比较多的。但是一般也没问题,
    就是有时候突然内存增加,就是不知道这到底是哪部分代码引起的。郁闷。
      

  9.   

    先排除是否不是SQL的问题
    再看看是不是代码的问题
    还有多注意是不是哪有死循环了
    以前我们曾经出现过不定期出现死循环,然后就会IIS给挂掉
      

  10.   

    看下是否对象没释放。看看缓冲,另外看看是内存多了以后能不能自己消除掉,不要把所有的数据读入到datset里面去
      

  11.   

    肯定不是小方面的错误、内存速度陡增,肯定是在运行过程中出现的问题,估计是IIS的问题,要不就是GC的问题
      

  12.   

    timer1_Tick 那个timer里估计要释放下 
      

  13.   

    不明白你说什么,我又没用到timer啊。