我正在修复ASP.NET OutputCache的错误,这使我发疯。
我们希望在服务器上进行缓存,但是它似乎无法正常工作(它是在较早版本的应用中执行的,但不久前我们偶然发现了该错误)。
在本地,我只是无法使缓存在服务器端起作用。使用此属性:
[OutputCache(CacheProfile = "MyProfile", Location = OutputCacheLocation.Server)] // doesn't work
现在,根据我通过谷歌搜索所读的几件事,以下可能是相关信息:
VaryByParams
值,没有任何效果。 我打开了一个
perfmon
session ,并从Web Service Cache
组中添加了一些计数器,我所看到的是存在缓存的URL,但是缺少了缓存:我们现在面临的更大的问题/错误是OutputCache现在根本无法正常工作。我们可以通过指定
VaryByParams=""
(一个空字符串)来解决此问题。为客户做到了。但这还不适用于服务器端。我实际上是通过在应该缓存的操作中放置调试断点来检查它是否有效。每次都会命中它,这应该意味着未命中缓存。
最佳答案
There is no guarantee that content will be cached for the amount of time that you specify. When memory resources become low, the cache starts evicting content automatically.
如果在测试期间服务器上的可用内存资源不足,则高速缓存将立即逐出内容。我敢肯定,它甚至可以拒绝将您的内容放入缓存。
关于asp.net - 如何验证ASP.NET MVC OutputCache是否可在服务器上正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33145950/