如何验证ASP.NET MVC OutputCache在服务器上工作?

如何验证ASP.NET MVC OutputCache在服务器上工作?,asp.net,asp.net-mvc,caching,iis,outputcache,Asp.net,Asp.net Mvc,Caching,Iis,Outputcache,我正在用ASP.NET OutputCache修复一个bug,它快把我逼疯了。 我们希望在服务器上进行缓存,但它似乎不起作用(不久前,在我们的应用程序的旧版本中确实如此,但我们最近意外地发现了这个错误) 在本地,我无法让缓存在服务器端工作。使用此属性: [OutputCache(CacheProfile = "MyProfile", Location = OutputCacheLocation.Server)] // doesn't work 现在,根据我在谷歌上搜索到的一些信息,这里可能有相

我正在用ASP.NET OutputCache修复一个bug,它快把我逼疯了。 我们希望在服务器上进行缓存,但它似乎不起作用(不久前,在我们的应用程序的旧版本中确实如此,但我们最近意外地发现了这个错误)

在本地,我无法让缓存在服务器端工作。使用此属性:

[OutputCache(CacheProfile = "MyProfile", Location = OutputCacheLocation.Server)] // doesn't work
现在,根据我在谷歌上搜索到的一些信息,这里可能有相关信息:

  • 在IIS(本地主机)中启用了输出缓存
  • I使用authorized属性(带有继承的自定义属性)。我已经对此进行了专门调试,我95%相信这不是原因
  • 我摆弄过各种
    VaryByParams
    值,什么都不管用
  • 缓存在客户端起作用
我打开了一个
perfmon
会话,并从
Web服务缓存
组中添加了一些计数器,我看到的只是有缓存的URL,但缓存丢失了:

我们现在面临的更大的问题/缺陷是OutputCache现在根本不工作。我们可以通过指定
VaryByParams=“”
(一个空字符串)来解决这个问题。这样做是为了客户。但它还不能在服务器端工作

我实际上是通过在应该缓存的操作中放置调试断点来检查它是否有效。它每次都被命中,这意味着缓存没有被命中。

来自:

无法保证内容将在指定的时间内被缓存。当内存资源变低时,缓存开始自动逐出内容


如果在测试期间服务器上的可用内存资源不足,缓存将立即逐出内容。我确信它甚至可以拒绝将您的内容放入缓存。

我也遇到过类似的问题,这是缓存配置文件的问题。如果我没有使用缓存配置文件,而是将值直接插入到attributes构造函数中,那么它就起作用了。你试过了吗?@heymega我试过了,没什么区别。@MarioDS:我遇到了同样的问题。你解决了吗?@user1107799我不记得了。我想我们讨论了更重要的问题。谢谢你提供了一个理由,但我们的情况并非如此。