【问题标题】:How to keep data in memory in asp.net MVC2 web app?如何将数据保存在 asp.net MVC2 Web 应用程序的内存中?
【发布时间】:2010-08-25 18:54:13
【问题描述】:
我有一个没有由 IIS7 托管的数据库的 MVC2 Web 应用程序。该模型是文件系统某些属性的自定义索引,现在该索引存储在内存中。问题在于,存储在内存中的数据会定期被释放,并且必须重新创建索引。也许最好的解决方案是序列化索引对象并在索引被释放时加载它,但如果我可以阻止数据去任何地方会简单得多。
【问题讨论】:
标签:
.net
asp.net-mvc
iis
asp.net-mvc-2
【解决方案1】:
在一段时间内没有任何活动或 IIS 回收进程时,您将丢失内存中的任何数据,因此如果您需要该信息,则需要以某种方式持久保存它并在何时检索它内存被清除了。
您是否考虑过将这些数据保存在持久性 xml 文件中或序列化到服务器上的文件中?
如果它从内存中清除,您可以检查这种情况,然后将文件重新加载回应用程序缓存。
【解决方案2】:
为了让数据能够继续存在,您必须将其移出 IIS 的权限 - 这意味着 XML 存储(在 App_Data、独立存储或其他地方)、数据库或服务。
我之所以提到一项服务,是因为虽然它可能有点矫枉过正,但我认为还需要对这些数据进行一些处理?删除陈旧的条目,添加新的条目并通常照顾家务?将所有这些都放入服务中可以使数据在 IIS 的限制之外持续存在(但要注意这会走多远,因为在某些时候您可能只是在重新发明数据库服务器的某些方面)。