ASP.NET服务器端缓存生存期?

ASP.NET服务器端缓存生存期?,asp.net,caching,ashx,Asp.net,Caching,Ashx,我已经编写了一个小的ASHX处理程序,它使用一个小的状态对象,我希望在一系列请求的生命周期中保持它。我让处理程序将对象放入服务器端缓存(HttpContext.Current.cache),并在ProcessRequest的开始处检索它 我可以期望该对象在缓存中保留多长时间?我期望处理程序实例来来去去,所以我希望在所有这些实例中都能保留一些东西(直到请求本身决定不再需要为止)。但是,如果我让处理程序在由于不在缓存中而必须创建新的状态对象时写入应用程序日志,我会看到它创建了2-3次。您可以在创建时

我已经编写了一个小的ASHX处理程序,它使用一个小的状态对象,我希望在一系列请求的生命周期中保持它。我让处理程序将对象放入服务器端缓存(
HttpContext.Current.cache
),并在
ProcessRequest
的开始处检索它


我可以期望该对象在缓存中保留多长时间?我期望处理程序实例来来去去,所以我希望在所有这些实例中都能保留一些东西(直到请求本身决定不再需要为止)。但是,如果我让处理程序在由于不在缓存中而必须创建新的状态对象时写入应用程序日志,我会看到它创建了2-3次。

您可以在创建时指定生存期和优先级


不能保证项目在整个请求的生存期内都保留在缓存中。例如,如果存在内存压力,则可能会清除缓存,但为项目设置更高的优先级会使其更有可能保留在缓存中。

我正在使用cache[]添加项目。谢谢。如果您只是使用
Cache[]
添加项目,则使用默认的生存期和优先级策略。我不确定它们是什么,但我非常确定,除非您遇到内存压力(和/或您的appdomain因某种原因重新启动),否则您的项目不应该定期从缓存中删除。