Here is how temporary files are working:
When file is selected it is uploaded into the Temporary Folder and the AsyncUpload adds its name to the ASP.NET Application Cache for further removal (after the TemporaryFileExpiration
passes). If postback occurs the AsyncUpload will move this file from the Temporary to the Target folder and it also removes the file name from the application cache.
However if postback does not occur the application will remove the temp file from the Temporary folder after the TemporaryFileExpiration
time passes. Application knows which file to remove, because the file name still exists in the cache.
When the application or the IIS are restarted for some reason the cache will be lost. In this case all files names that exist in the cache for further removal won't be removed.
Maybe this is what happens on your machine.
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.