日期:2014-05-17  浏览次数:20446 次

.NET缓存进程间不共享吗
IIS里有个配置选项不是设置最大工作进程数吗,公司的网站设置为10。公司里有些数据用了缓存,现在清理缓存经常出现清理不掉的现象。我自己在测试环境试了一下 ,最大工作进程数也设置成10,好像进程间的缓存不能共享。我同时打开了两个创建缓存页面,创建缓存后,单击显示按钮可以显示当前缓存中的内容,我发现当在A页面创建缓存后,B页面里获取缓存还是什么都没有,等于是没获取到A页面创建的缓存。
 现在缓存公司网站的清除缓存功能经常失灵,美工想测试个广告位,一个清除缓存按钮得反复的点好些遍才能清除掉。大家给出个主意吧
.net多进程缓存清理 .net

------解决方案--------------------
 不是吧。。服务器端缓存是共享的啊。。

 是Cache ? 设置的是绝对过期还是相对过期。

cache.remove 应该可以的啊。。
------解决方案--------------------
 你是不是在Cache 操作类 设置了如果没有Cache 然后又去读啊。。这样你的Cache 每次又重新有了。
------解决方案--------------------
Show us some codes.
------解决方案--------------------
引用:
Show us some codes.
plus one
------解决方案--------------------
应用程序池检查 Web园 看看是几? 之前我测试过 静态变量在大于1的情况下是不共享的。
------解决方案--------------------
引用:
IIS里有个配置选项不是设置最大工作进程数吗,公司的网站设置为10。公司里有些数据用了缓存,现在清理缓存经常出现清理不掉的现象。我自己在测试环境试了一下 ,最大工作进程数也设置成10,好像进程间的缓存不能共享。我同时打开了两个创建缓存页面,创建缓存后,单击显示按钮可以显示当前缓存中的内容,我发现当在A页面创建缓存后,B页面里获取缓存还是什么都没有,等于是没获取到A页面创建……

应该仔细说明 缓存是怎么实现。 System.Web.Caching 这个是跨进程的

------解决方案--------------------
谁说System.Web.Caching 是跨进程的?
看这篇文章:
http://www.hanselman.com/blog/TheASPNETCacheObjectInAWebGardeningScenarioWithIIS5OrIIS6.aspx