我有一个为某些对象使用缓存的应用程序,并且该缓存是作为静态Dictionary
实现的。我正在考虑将一些代码用于新的ASP.NET项目。由于缓存将存储在服务器上,而不是每次运行应用程序时都构建,我将不时刷新缓存。
我的问题是:应用程序池回收是否会重新运行我的类的静态构造函数来设置缓存?
我对应用程序池的工作原理并不了解,但根据我的理解,他们已经关闭了#34;长时间访问该站点时,再次访问该站点时重新启动。在重新启动期间,静态对象是否会被实例化"再次,或者那些仍然保留在记忆中的"关闭"过程
答案 0 :(得分:2)
是。静态构造函数将重新运行。
然而,在Application_Start
事件上初始化数据仍然比较明智,而不是依赖于静态构造函数,因为它的行为更加可预测。