IIS是否在空闲时对托管服务应用程序进行垃圾收集?

IIS是否在空闲时对托管服务应用程序进行垃圾收集?,iis,garbage-collection,iis-7.5,wcf-data-services,Iis,Garbage Collection,Iis 7.5,Wcf Data Services,全部, 我开发了一个WCF ODATA服务应用程序,并将其托管在IIS7中。服务应用程序有一个内存缓存,如果客户端空闲大约15分钟,它将丢失所有缓存的值 在进行故障排除时,我发现应用程序逻辑是正确的,不会从缓存中大量删除对象 所以,我很困惑,如果IIS在相当长的一段时间内没有连接到它的客户机时确实清除了服务对象 这种GC行为是真的吗?如果是,我如何控制它 非常感谢您的帮助 谢谢默认情况下,IIS7应用程序池设置了20分钟空闲超时值,在此值之后,应用程序池将与所有缓存数据一起从内存中卸载 通过在I

全部,

我开发了一个WCF ODATA服务应用程序,并将其托管在IIS7中。服务应用程序有一个内存缓存,如果客户端空闲大约15分钟,它将丢失所有缓存的值

在进行故障排除时,我发现应用程序逻辑是正确的,不会从缓存中大量删除对象

所以,我很困惑,如果IIS在相当长的一段时间内没有连接到它的客户机时确实清除了服务对象

这种GC行为是真的吗?如果是,我如何控制它

非常感谢您的帮助


谢谢

默认情况下,IIS7应用程序池设置了20分钟空闲超时值,在此值之后,应用程序池将与所有缓存数据一起从内存中卸载

通过在IIS管理器中选择承载站点的应用程序池,在“操作”窗格中选择“高级属性”,然后将“空闲超时(分钟)值”的值设置为所需的新超时值,然后单击“确定”,可以将其设置为“0”,从而使其永不超时。(布拉德·金斯利(Brad Kinsley)在博客上发布了几张截图

考虑的一个选项是设置一个OPRC缓存,这样即使IIS回收了你的应用程序,内存缓存仍然存在,或者为你现有的缓存设置一个后备存储,这样,如果应用程序池循环,缓存从后备存储库重新填充。 企业库的缓存应用程序块是具有此类备份存储的缓存解决方案的一个示例。有关详细信息,请参阅