Expiração absoluta do cache do ASP.net não está funcionando

Estou armazenando um único valor inteiro no HttpContext.Cache com um tempo de expiração absoluto de 5 minutos a partir de agora. No entanto, após aguardar 6 minutos (ou mais), o valor inteiro ainda está no cache (ou seja, nunca é removido, mesmo que a expiração absoluta tenha passado). Aqui está o código que estou usando:

public void UpdateCountFor(string remoteIp)
{
    // only returns true the first time its run
    // after that the value is still in the Cache
    // even after the absolute expiration has passed
    // so after that this keeps returning false
    if (HttpContext.Current.Cache[remoteIp] == null)
    {
        // nothing for this ip in the cache so add the ip as a key with a value of 1
        var expireDate = DateTime.Now.AddMinutes(5);
        // I also tried:
        // var expireDate = DateTime.UtcNow.AddMinutes(5); 
        // and that did not work either.
        HttpContext.Current.Cache.Insert(remoteIp, 1, null, expireDate, Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
    }
    else
    {
        // increment the existing value
        HttpContext.Current.Cache[remoteIp] = ((int)HttpContext.Current.Cache[remoteIp]) + 1;
    }
}

A primeira vez que executo UpdateCountFor ("127.0.0.1"), ele insere 1 no cache com a chave "127.0.0.1" e uma expiração absoluta de 5 minutos a partir de agora, conforme o esperado. Cada execução subseqüente incrementa o valor no cache. No entanto, após aguardar 10 minutos, ele continua aumentando o valor no cache. O valor nunca expira e nunca é removido do cache. Por que é que

Entendo que um prazo de validade absoluto significa que o item será removido aproximadamente naquele momento. Estou fazendo algo errado? Estou entendendo algo errado?

Espero que o valor seja removido do cache após 5 minutos, mas ele permanece lá até eu reconstruir o projet

Tudo está sendo executado no .NET 4.0 na minha máquina loca

questionAnswers(3)

yourAnswerToTheQuestion