Asp.net mvc MVC全局服务器端输出缓存
我正在尝试为我们的公共站点设置全局服务器端输出缓存。我可以看到有一个OutputCache属性可以让你控制它。如果我像这样在filterConfig中全局注册它,它就可以正常工作Asp.net mvc MVC全局服务器端输出缓存,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我正在尝试为我们的公共站点设置全局服务器端输出缓存。我可以看到有一个OutputCache属性可以让你控制它。如果我像这样在filterConfig中全局注册它,它就可以正常工作 filters.Add(new OutputCacheAttribute() { Duration = 3600, VaryByParam = "*" }); filters.Add(new OutputCacheAttribute() { Duration = 3600, VaryByParam = "*", Lo
filters.Add(new OutputCacheAttribute() { Duration = 3600, VaryByParam = "*" });
filters.Add(new OutputCacheAttribute() { Duration = 3600, VaryByParam = "*", Location = OutputCacheLocation.Server });
问题是,这会在客户端启用缓存,这会导致我们设置的某些重定向逻辑出现问题。所以我们需要
但是如果像这样将location属性设置为Server
filters.Add(new OutputCacheAttribute() { Duration = 3600, VaryByParam = "*" });
filters.Add(new OutputCacheAttribute() { Duration = 3600, VaryByParam = "*", Location = OutputCacheLocation.Server });
然后,这会在某些具有子操作的页面上导致以下异常
子操作的OutputCacheAttribute仅支持Duration、VaryByCustom和VaryByParam值。请不要为子操作设置CacheProfile、Location、NoStore、SqlDependency、VaryByContentEncode或VaryByHeader值
是否有一种全局启用服务器端缓存的方法?有人能解释为什么这不起作用吗?这是MVC的一个限制。 但是,您可以使用自定义输出缓存。照此 您可以使用
并替换OutputCache。。。有了DonutOutputCache…我现在就要试一试了。似乎是因为完整页面和部分视图的缓存存储方式不同。MVCDONUTCACH似乎解决了这个问题