I've been checking the code on this, since I cannot fix it so far.
It has to be this:
Dim arrFiles As ArrayList = GetFiles()
For intItem = 0 To arrFiles.Count - 1
If GetFiles returns an empty array.
GetFiles uses DataCache.GetCache
The speed at which the page reloads indicates it is not a usual app restart.
But it might be that the Cache is being purged to free up memory.
Or, looking at the web.config, it might be because:
~\Providers\CachingProviders\FileBasedCachingProvider\
and
~\Providers\CachingProviders\BroadcastPollingCachingProvider\
are missing in my site.
I'm going to try this now.