我有几个ActionMethods
返回数据库中不经常更改的内容(例如:可用ZIP区域的多边形列表,以json形式返回;每年更改两次)。
我知道,有[OutputCache(...)]
属性,但这有一些缺点(长时间客户端缓存不好;如果服务器/ iis /进程重新启动,服务器端缓存也会停止)
我想要的是,MVC将结果存储在文件系统中,计算散列,如果散列没有改变 - 它返回HTTP状态代码304 - >就像默认使用图像一样。
有人知道解决方案吗?
答案 0 :(得分:0)
我认为尝试在文件系统上缓存数据是个坏主意,因为:
如果我是你,我会尽量保持简单。将数据存储在Application容器中。是的,每次应用程序启动时都必须重新加载它,但它根本不应该是一个问题,因为应用程序不应该经常重启。如果您有一个Web场,也可以考虑使用App Fabric之类的分布式缓存,以便不在不同服务器上的Application容器中提供不同的数据。
还有一个重要的注意事项。缓存意味着非常快速的访问,你无法通过文件系统或数据库存储实现它,这是你应该考虑的内存存储。