我创建了一个 ASP .Net MVC 3 应用程序,它允许用户根据文件名搜索各种媒体文件。有大量这样的文件,所以我创建了一个倒排索引并将其存储在内存中。具体来说,我把它作为一个
Dictionary<string,List<string>>.
嗯,这个索引必须首先创建才能被搜索到,所以我创建了一个方法来构建它。它工作正常,一切都很好,但很自然地,每次 AppPool 刷新时,我的索引都会丢失。我试过关闭 AppPool 回收,但我认为这是一个坏主意(而且它似乎无论如何都会回收)。
我基本上不确定我的下一步应该是什么。有没有办法检测 AppPool 何时刷新和重建我的索引?或者完全禁用应用程序池回收是否安全?
干杯,
-乔希
最佳答案
假设索引对其可用,我会认为您可以在 Application_disposed 上序列化索引,然后在全局 asax 的 application_start 事件中反序列化它?
关于iis-7 - 通过 AppPool Recycles 保留静态数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6260558/