我正在使用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文件中作为日志。但是,那时没有错误。
对于为什么会发生这种情况的任何建议?
答案 0 :(得分:2)
只要ASP.NET工作进程存在,就会存在类的静态字段。一旦ASP.NET工作进程被回收,您将丢失所有静态数据。