ASP.NET缓存
问题描述:
我似乎无法让它“工作”。也许我甚至没有正确地测试它。我在我的aspx页面中有一个<%= DateTime.Now.ToString()%>行。我试过declarativly设置缓存这样ASP.NET缓存
<%@ OutputCache VaryByParam="SchoolId" Duration="180" Location="Server" NoStore="false" %>
我也试着通过Response.Cache对象设置它编程。时间戳总是改变。
web.config最初没有outputCache部分。我添加了一个看起来像
<outputCache enableOutputCache="true" enableFragmentCache="true" sendCacheControlHeader="true" omitVaryStar="false"/>
始终时间戳更改。我接下来要做什么?
答
呃。这个问题是一个Response.Cache.SetCacheability(HttpCacheability.NoCache)在Page_Load中的一个用户控件,隐藏在页面的三层深处。不过,我很感激帮助。
-al
答
我不认为这会工作,因为DateTime.Now是一个始终更新的属性。您必须将其保存在另一个变量中,否则从缓存中获取它。
嗯。我的大脑今天有点糊涂。我不确定这是否准确,因为它是输出缓存,但我现在没有时间模拟样本。
答
它应该很容易启用。我过去通过在aspx中设置OutputCache指令来完成它。我不认为web.config更改是必需的,因为默认情况下通常启用缓存。
您正在使用IIS或开发Web服务器进行测试吗?你是否正在做任何会导致Web服务器在你的测试之间重置(即进行构建)的任何事情?
对于WebDev服务器,我体验到它不会缓存第一个请求。除此之外,我总是在不触及web.config的情况下正常工作。 – 2008-12-30 17:51:36