我在其中一个页面中启用了输出缓存,如下所示:
<%@ OutputCache Duration="300" VaryByParam="*"%>
问题是有时会出现异常,我们会显示相应的消息.但是此页面随后被缓存,其他用户也看到了异常消息.例如,假设数据库超时,因此抛出了sql异常.捕获此异常并显示一条消息“连接到数据库时出错.请在一段时间后尝试”.现在,此消息被缓存并显示给其他用户,甚至不查询数据库.
所以我想要做的是在有异常的情况下使特定的输出缓存无效,或者在有异常时不缓存.如何才能做到这一点?
这适用于ASP.NET 3.5 Webforms.
解决方法
您应该能够删除缓存项目
HttpResponse.RemoveOutputCacheItem("/MyPage/MyParameter");