title: Cached item never expiring
body: <p>I have a class that contains the following property:</p>
  
  <pre><code>public Dictionary&lt;string, int&gt; CommentCounts {
      get {
          string cacheKey = "CommentCounts";
          HttpContext c = HttpContext.Current;
  
          if (c.Cache[cacheKey] == null) {
              c.Cache.Insert(cacheKey, new Dictionary&lt;string, int&gt;(), null, DateTime.UtcNow.AddSeconds(30), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.High, null);
              c.Trace.Warn("New cached item: " + cacheKey); 
          }
  
          return (Dictionary&lt;string, int&gt;)c.Cache[cacheKey];
      }
      set {
          HttpContext.Current.Cache["CommentCounts"] = value;
      }
  }
  </code></pre>
  
  <p>It seems that the Trace statement only runs once, and not every 30 seconds after the Cache item has expired. The only way I can get it to refresh the Cached item is to make a code chance and rebuild the project, which is obviously less than ideal.</p>
  
  <p>What am I missing? Thanks in advance...</p>