这是this question的后续工作,涉及缓存对HttpWebRequest
的响应。
我有一个WebApi服务器,该服务器返回带有Expires标头的JSON响应,该标头指示应将响应在客户端本地本地缓存多长时间。
我已经编写了一个.Net Standard 2.0库,其中包含用于启用默认RequestCachePolicy的代码,如下所示:
var policy = new RequestCachePolicy(RequestCacheLevel.Default);
HttpWebRequest.DefaultCachePolicy = policy;
var request = WebRequest.Create(url);
... etc, a typical HttpWebRequest exchange ...
我从.NET Framework 4.6.1控制台应用程序调用此.NET标准库。缓存可以像我期望的那样工作:
这是我所期望的,因为根据this answer,它使用Microsoft.Win32.WinInetCache
,后者使用WinInet函数进行缓存,因此数据被缓存在多个进程之间共享的缓存中(以及IE(如果我理解正确)。
如果我从.NET Core控制台应用程序中运行完全相同的.NET Standard 2.0代码,则不会进行缓存,并且每个请求都会到达服务器。
出于可移植性原因,.NET Core不使用Microsoft.Win32.WinInetCache
是可以理解的。有没有一种方法可以让我在.NET Core中自动缓存响应(例如,通过使用配置注入缓存实现)。
我对Windows和Linux上的.NET Core 2.x解决方案感兴趣。理想情况下,缓存的数据将在多个进程之间共享,就像在.NET Framework上一样。
有人可以帮忙吗?