【发布时间】:2023-04-11 05:53:02
【问题描述】:
我有一个在 IIS6 上运行的 C# (FrameWork 4.0) 应用程序。
我想永久缓存数据数据(步行上课), 但是一个事件或类似的东西会删除这个缓存的数据, 在很短的时间内(15-25 分钟)。
我仅使用此选项配置 IIS:回收工作进程(以分钟为单位)1740。
有什么想法可以保留缓存的数据吗? 静态变量的文件时间和应用程序的生命周期一样吗?
public class CacheUsers
{
static object objlock;
private static List<Users> usersList { get; set; }
private static DateTime lastUpdate;
public CacheUsers()
{
if (objlock == null)
{
objlock = new object();
}
lock (objlock)
{
if (usersList == null || usersList.Count.Equals(0) || (lastUpdate < DateTime.Now.AddHours(-24)))
{
UpdateUserList();
}
}
}
public static List<Users> ListaCacheada
{
get
{
if (usersList == null || usersList.Count.Equals(0) || (lastUpdate < DateTime.Now.AddHours(-24)))
{
UpdateUserList();
}
return usersList;
}
}
/// <summary>
/// Refresh the user list
/// </summary>
private static void UpdateUserList()
{
usersList = GetUsers();
lastUpdate = DateTime.Now;
}
}
【问题讨论】:
-
你在哪里实例化
CacheUsers? -
所以您希望在应用程序池回收后显示数据?
-
2.是的,当然,我希望应用池回收后的数据,这就是目的。
标签: c# asp.net caching static iis-6