IIS启动后,内存一直增大到800M的时候就出现重新启动的现象。检查程序并没有发现明显的错误。
目前程序使用比较多的是数据库操作,由于有表单要出,大量使用了DataGrid和DataTable(几乎所有页面用到datagrid),现在用户大概不超过100人。程序中用session的不是非常多,但也保存了一些IList对象。
大家给点提示程序使用了大量内存不能及时释放的可能原因。

解决方案 »

  1.   

    aspnet默认最大使用800M 内存 
    如果你要更大的,可以修改machine.config内的配置。
      

  2.   

    修改内存限制是一个办法。不过我好像看到有些文章说一般IIS只能管理到800M的内存,即使设置大内存给它,也不一点有效果,微软好像也提倡不要设置大于800M内存给IIS。而且我现在已经设的是1.2G。
    因为使用的人不多,内存已经挺大的,所有主要还是考虑如果优化程序,使内存能及时释放。
      

  3.   

    SqlDataAdapter和DataTable这些对象是否需要显示的去释放它们?
      

  4.   

    可以考虑使用缓存啊。SqlDataAdapte 需要释放对象。
      

  5.   

    能显示释放的尽量自己把它们释放掉,如
    SqlDataAdapter  sda;
    sda.dispose();
    sda.close();