title: Cache.Insert("") with absolute expiration off by UTC offset
body: <p>I have a few asp.net webforms sites, on a production server, that are suddenly having caching problems.  The issue is my cache values are not persisting when using the Cache.Insert method. Using Cache["key"] = value does still work though.</p>
  
  <p>For example, when I set a value like this, it is null when I retrieve it.</p>
  
  <pre><code>HttpRuntime.Cache.Insert("CacheTestVal", "Help Me!" null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
  </code></pre>
  
  <p>When I set the value like this, I can retrieve the expected value</p>
  
  <pre><code>Cache["CacheTestVal"] = "Help Me!";
  </code></pre>
  
  <p>I need to be able to set an absolute expiration for the cache value, so I can't use the Cache[""] method.  All help is appreciated.  Thanks.</p>
  
  <p>Edit: I found that setting the absolute expiration as a UTC datetime <strong>does</strong> work.  I believe the problem is that the server is not converting the absolute expiration to UTC when using DateTime.Now.</p>
  
  <pre><code>HttpRuntime.Cache.Insert("CacheTestVal", "Help Me!" null, DateTime.UtcNow.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
  </code></pre>
  
  <p>The date/time and timezone are all set as I would expect on the server, but maybe IIS doesn't recognize this, or there is a bad configuration value somewhere?</p>