ArrayList变为null

时间:2012-12-12 23:17:05

标签: c# asp.net arraylist nullreferenceexception

我正在使用ASP.NET开发Web应用程序。我有一个名为“Sistema”的类,它使用Singleton模式。

创建Sistema实例时,将打开数据库连接,并运行一个进程,将一些静态信息加载到多个ArrayList中供以后使用。

private ArrayList list1;
private ArrayList list2;
private static Sistema instance;
private Sistema()
{
    OpenDataBase();
    list1 = LoadStaticInformationFromDataBase();
    list2 = LoadOtherStaticInformationFromDataBase();
}

public static Sistema GetInstance()
{
    if (instance == null)
    {
        instance = new Sistema();
    }
    return instance;
}

全天,新对象都会添加到每个ArrayList中。 在过去的几天里,突然发现其中一个ArrayList变为null,结果整个站点停止工作。

我无法确定为什么这会变为空。

可以是ArrayList达到最大值吗?例如,现在它有超过150.000个对象。

在Global.asax文件中,在Application_Error方法中,我添加了一段代码,将每个错误存储在txt文件中作为日志。但是,那时没有错误。

对于为什么会发生这种情况的任何建议?

1 个答案:

答案 0 :(得分:2)

只要ASP.NET工作进程存在,就会存在类的静态字段。一旦ASP.NET工作进程被回收,您将丢失所有静态数据。