I'm trying to build a process that will repopulate an item that was inserted into cache every 30 minutes. I inserted the item into Cached to expire after 30 minutes. I setup a delegate (http://msdn.microsoft.com/en-us/library/system.web.caching.cacheitemremovedcallback(v=VS.90).aspx) to be called when the cached item expired. My goal was when the delegate was called was to rebuild the item and insert it back into cached.
The issue I found with the MSDN article above was that it was using a holding the page instance open until the delegate was called. Instead of had it call another class that was static (vb shared). This caused a different problem -- the delegate lost context. When I tried to add back into the cache the HttpContext.Current was null.
Is there a way I can repopulate an item in cache every 30 minutes in ASP.NET without keeping page instances around? Note, I cannot use a sliding expiration date because the content will change.