windows 的http缓存是通过Wininet实现的,包括httpwebrequest/httpclient,使用这两个接口下载时,都可以看到缓存的内容存储在
%userprofile%\AppData\Local\Microsoft\Windows\INetCache目录下。
但是当把程序放到windows RE(windows recovery environment) 或者说windows PE 上时,发现下载功能正常,但是没有缓存。
初步判断是, CreateUrlCacheEntry 接口无法在windows RE(windows recovery environment)工作。因为该接口在windows RE(windows recovery environment)返回 errorcode 12004(ERROR_INTERNET_INTERNAL_ERROR)。
希望哪位熟悉WRE环境或者 CreateUrlCacheEntry 接口的朋友可以分享一下,如何让在windows RE(windows recovery environment)让http 缓存正常工作。
由于在这些环境中可用的功能和组件集有限,缓存功能可能在 Windows 恢复环境 (WRE) 或 Windows 预安装环境 (Windows PE) 中不可用。
您可以尝试的一种选择是使用文件或数据库实现您自己的缓存机制。您可以将下载的内容存储在文件或数据库中,并在发出新请求之前检查文件或记录是否存在。这样,您可以避免发出不必要的请求并减少网络负载。
您也可以尝试使用外部缓存工具(例如缓存代理服务器)来缓存下载的内容。缓存代理服务器可以存储频繁请求的资源的副本,并从缓存中为客户端提供服务,减少源服务器的负载,提高系统的整体性能。