将ASP.NET MVC 5应用程序切换到Azure Redis(Microsoft.Web.RedisOutputCacheProvider
Nuget包)后,我很惊讶OutputCacheAttribute
设置为使用OutputCacheLocation.Any
或{{1}时}
OutputCacheLocation.ServerAndClient
随机生成以下错误:
使用“RedisOutputCache”之类的自定义输出缓存提供程序时, 只有以下过期策略和缓存功能 支持:文件依赖性,绝对过期,静态 验证回调和静态替换回调。
这很奇怪,因为上面的声明清楚地定义了绝对过期而没有任何高级的东西,如[Route("Views/Orders")]
[OutputCache(Duration = 600, Location = OutputCacheLocation.Any)]
public ActionResult Orders()
{
}
。经过一些搜索后,似乎没有this issue的修复,这非常令人沮丧。是否有任何外部缓存提供程序与ASP.NET缓存机制兼容?如果没有,您如何在MVC / WebApi应用程序中的集群方案中实现服务器端HTTP输出缓存?
答案 0 :(得分:0)
问题在于,如果端点经过身份验证,则根据定义,输出因用户而异。所以基本上所有的外部输出缓存提供者都不再是一个选项。
您的选择是: