假设我有一个 ASP.NET 应用程序在负载均衡器后面的多个 Web 服务器上运行:
Can I:
一种可能的解决方案是让每次使用缓存时检查文件依赖性是否发生变化。该文件可能会被触及,这将使所有缓存过期。但是,这要求开发人员在所有代码中包含依赖项。他们是更好的解决方案吗?
有很多方法可以使这些缓存过期,例如页面输出缓存
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)
基于时间的依赖性只是使项目在定义的时间点过期。
Response.Cache.SetExpires(DateTime.Now.AddSeconds(360));
Response.Cache.SetCacheability(HttpCacheability.Private)
Response.Cache.SetSlidingExpiration(true);
现在说到监控缓存,除非有关于缓存的API告诉你,否则没有直接的办法。
您当然可以枚举缓存、键值对,然后计算存储的每个项目的大小。听起来并不容易吧?
So here's http://www.aspalliance.com/CacheManager/Default.aspx使您的缓存监控变得轻松。坦率地说,我自己从未使用过它,但你可以尝试一下,只需向你的应用程序添加一个 dll 即可。
这是您的缓存键视图的一些内容,
' display contents of the ASP.NET Cache
If Cache.Count > 0 Then
cc.Append("<b>Contents of the ASP.NET Cache (" _
& Cache.Count.ToString() & " items):</b><br />")
For Each item As Object In Cache
cc.Append("Key:'" & item.Key & "' Type:" _
& item.Value.GetType().ToString() & "<br />")
Next
Else
cc.Append("<b>ASP.NET Cache is empty</b>")
End If
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)