在我们的 Windows 8 应用程序中,我们使用 IXMLHTTPRequest2 方法通过 HTTP 流式传输文件,文件的大小可以达到千兆字节。这一切都很完美,除了 WinRT 在内部有一个缓存系统,它将通过对 IXMLHTTPRequest2 的调用流式传输的所有内容存储在临时 Internet 缓存中。随着我们流式传输越来越多的文件,缓存永远不会被清空,它只会开始占用越来越多的磁盘空间,直到磁盘已满。
理想情况下,我们希望完全禁用此缓存功能。我们可以接受的另一个选项是缓存文件将在片刻后被删除(尽管我们希望避免浏览临时 Internet 缓存并手动删除文件)。
我们尝试在服务器响应中添加“Expires: 0”标头,以及直接在 IE 中禁用缓存(我们认为这可能会影响对 IXMLHTTPRequest2 的调用),但无济于事。
有人对此有任何想法吗?
我意识到这个问题与此处发布的另一个问题相似,但是,我们的问题更多地与缓存占用的空间有关,而不是与文件的“新鲜度”有关。
编辑:我们还在 MSDN 论坛上找到了这篇文章,根据 MSFT 版主的说法,“系统还会定期清理缓存,因此您不必担心磁盘空间不足”,但事实并非如此在我们的场景中。