【问题标题】:Debugging OutputCache in ASP.Net在 ASP.Net 中调试 OutputCache
【发布时间】:2009-04-23 18:32:57
【问题描述】:

我不知道为什么我不能让简单的输出缓存工作,也不知道如何调试这样的情况。

仅通过查看示例和我之前从事的项目,我使用了以下代码:

<%@ OutputCache Duration="100" VaryByParam="id" %>

但由于这不起作用,我尝试了 VaryByParam="*" 和 VaryByParam="none"

这些都不起作用。

是否有快速检查以确保没有其他东西干扰 OutputCache?

【问题讨论】:

    标签: asp.net debugging outputcache


    【解决方案1】:

    如果您只是想查看 OutputCache 是否正常工作,您可以随时向您的页面添加一个标签,该标签仅绑定到当前日期时间。第一次加载时,它会为您提供标签绑定时间的时间戳。

    下一次标签应该更新是在缓存过期并再次点击页面之后。

    <%@ OutputCache duration="120" varybyparam="None" varybycustom="Browser" %>
    
    
    <asp:Label ID="Testlabel" runat="server" Text=""><%= DateTime.Now %></asp:Label>
    

    【讨论】:

    • 但这应该由 QA 完成。对于开发人员来说,有没有办法查看代码并查看所有在调试过程中被 ASP.NET 缓存的对象?
    【解决方案2】:

    您只缓存了 100 秒,您尝试过更长的值吗?在 Visual Studio 中启动调试器可能需要 100 秒(或更长时间!)。您是否也尝试过不使用 VaryByParam?

    【讨论】:

    • 如果启动调试器需要 100 秒...是时候购买新机器了! ;)
    • 不要认为调试器是一个问题...因为我刷新了几次(没有接触过代码)所以如果它第一次没有缓存..应该缓存下一个..
    【解决方案3】:

    这类似于 womps 的答案,但有一些更正。

    如果您只是想查看 OutputCache 是否正常工作,您始终可以包含当前日期时间。第一次加载它时,它会为您提供标签绑定时间的时间戳。换句话说,缓存已准备好。如果您重新加载页面,则日期应该与缓存的输出相同。一旦缓存过期,日期时间将再次更新并重复循环。

    <%@ OutputCache duration="120" varybyparam="None" %>
    <%= DateTime.Now %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 2011-12-29
      • 2011-05-14
      相关资源
      最近更新 更多