我对 OutputCache 不太了解。
这是我的测试
我有一个返回当前时间的简单动作
[OutputCache(Duration = 3600, VaryByParam = "none", Location = System.Web.UI.OutputCacheLocation.Server)]
public string hour()
{
return DateTime.Now.ToString("T");
}
在这种情况下,它可以完美运行。
现在我想使用 cacheProfile 这是更新的操作
[OutputCache(CacheProfile = "Cache1Hour")]
public string hour()
{
return DateTime.Now.ToString("T");
}
这是 web.config 缓存部分
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="Cache1Hour" duration="3600" varyByParam="none" location="Server"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
但是当我测试它不起作用。如果我调用 /MyController/hour?id=1 和 /MyController/hour?id=2 我会收到两个不同的结果,尽管我设置了 varyByParam="none" ;
最后,我又做了一个测试
[OutputCache(CacheProfile = "Cache1Hour", VaryByParam ="none")]
public string hour()
{
return DateTime.Now.ToString("T");
}
对于这种情况,它可以完美运行。
这是什么意思?为什么我的 VaryByParm 属性没有从 web.config 文件中使用?有人可以解释一下吗?
问候
更新 1:这是我的 web.config web.config的打印屏幕