ASP.NET应用程序池回收是否会刷新静态对象上的缓存?

时间:2014-08-28 15:20:27

标签: asp.net iis

我有一个为某些对象使用缓存的应用程序,并且该缓存是作为静态Dictionary实现的。我正在考虑将一些代码用于新的ASP.NET项目。由于缓存将存储在服务器上,而不是每次运行应用程序时都构建,我将不时刷新缓存。

我的问题是:应用程序池回收是否会重新运行我的类的静态构造函数来设置缓存?

我对应用程序池的工作原理并不了解,但根据我的理解,他们已经关闭了#34;长时间访问该站点时,再次访问该站点时重新启动。在重新启动期间,静态对象是否会被实例化"再次,或者那些仍然保留在记忆中的"关闭"过程

1 个答案:

答案 0 :(得分:2)

是。静态构造函数将重新运行。

然而,在Application_Start事件上初始化数据仍然比较明智,而不是依赖于静态构造函数,因为它的行为更加可预测。