我们的应用程序代码部署在环境为 windows server 2003、iis 6.0 的生产服务器上。我们的应用程序中有一些缓存代码,其绝对过期时间设置为 DateTime.Now.AddMinutes(30)。我们使用了 HttpContext.Current.Cache 对象。
HttpContext.Current.Cache.Add(Scope,objectCache,
null,
DateTime.Now.AddMinutes(30),
Cache.NoSlidingExpiration,
CacheItemPriority.High, LifeStyleEvicted);
private static void LifeStyleEvicted(string key, object value, CacheItemRemovedReason reason)
{
var objectCache = ((IObjectCache)value);
if (objectCache != null) objectCache.DisposeAndClear();
}
所以每 30 分钟后应该重新启动缓存。第 31 分钟开始的所有请求都应该比正常时间长一点。但是在 windows server 2003 和 IIS 6.0 中还没有观察到这种行为。
最近我们已经将我们的代码部署到了windows server 2008, IIS 7.5。在这种环境中,在第 31 分钟开始时发出的所有请求都比正常情况花费的时间太长。
有人可以告诉我为什么 Windows Server 2003 和 IIS 6.0 中没有重现这种行为吗?
提前致谢。