asp.net - 如何验证ASP.NET MVC OutputCache是​​否可在服务器上正常工作?

标签 asp.net asp.net-mvc caching iis outputcache

我正在修复ASP.NET OutputCache的错误,这使我发疯。
我们希望在服务器上进行缓存,但是它似乎无法正常工作(它是在较早版本的应用中执行的,但不久前我们偶然发现了该错误)。

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

[OutputCache(CacheProfile = "MyProfile", Location = OutputCacheLocation.Server)] // doesn't work

现在,根据我通过谷歌搜索所读的几件事,以下可能是相关信息:
  • 在IIS(localhost)中启用了输出缓存
  • DO 使用AuthorizeAttribute(具有继承功能的自定义属性)。我已经专门针对此进行调试,并且我有95%的信心这不是原因。
  • 我弄弄了各种VaryByParams值,没有任何效果。
  • 缓存可以在客户端进行的工作。

  • 我打开了一个perfmon session ,并从Web Service Cache组中添加了一些计数器,我所看到的是存在缓存的URL,但是缺少了缓存:

    perfmon graph

    我们现在面临的更大的问题/错误是OutputCache现在根本无法正常工作。我们可以通过指定VaryByParams=""(一个空字符串)来解决此问题。为客户做到了。但这还不适用于服务器端。

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

    最佳答案

    http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/improving-performance-with-output-caching-cs:

    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/

    相关文章:

    javascript - ASP.Net ThreadPool 委托(delegate)回调——JavaScript 不在回调线程上触发

    c# - 找不到 Asp.net MVC 4 Url 资源

    java - Ehcache搭配tomcat简单例子

    php - Gettext 缓存的烦恼

    c# - System.Web.Security 的替代方案,使用相同的数据库

    asp.net - 将 S-JIS 字符串解码为 UTF-8

    asp.net - MathJax - 文件加载失败 :/extensions/MathZoom. js

    c# - 参数字典包含参数 Orderid 的空条目

    c# - 当从 javascript 调用操作时,Asp.net MVC Controller 参数为 null

    caching - 如何在 ASP.net IIS 7.5 中利用浏览器缓存