我编写了一个小型 ASHX 处理程序,它使用一个小型状态对象,我希望在一系列请求的生命周期中持续存在该对象。我有处理程序将对象放入服务器端缓存 ( HttpContext.Current.Cache
) 并在ProcessRequest
.
我可以期望该对象在缓存中保留多长时间?我希望处理程序实例来来去去,所以我希望在所有这些实例中持续存在一些东西(直到不再需要由请求本身决定)。但是,如果我让处理程序在由于它不在缓存中而必须创建新状态对象时写入应用程序日志,我会看到它创建了 2-3 次。
您可以在将项目添加到缓存时指定生存期和优先级。
不保证项目在整个请求的生命周期内都保留在缓存中。例如,如果存在内存压力,则可能会清除缓存,但为您的项目设置更高的优先级使其更有可能保留在缓存中。