如何对serverAndClient使用响应缓存

问题描述

我们正在将一个asp.net MVC应用程序移植到asp NET core MVC中。在asp.net MVC中,我们为以下启用的某些MVC控制器输出缓存提供了代码

return send_file("./uploadfolder/imageofchoice.png")

我知道响应缓存是asp.net核心mvc中应用于outputcache的内容,但是在响应缓存中,Location枚举中没有ServerAndClient的Enum值。

那么我们应该如何解决这个问题。我们应该为此编写自己的中间件,还是应该有内置的实现方式,或者应该有第三方库做同样的事情。

解决方法

那么我们应该如何解决这个问题。我们应该自己写吗 为此的中间件,或者是否有内置的方法 具有相同功能的第三方库。

是的,您应该将中间件与UseResponseCaching一起使用。无法选择将缓存放在server中的ResponseCacheLocation上。 ASP.NET Core documentation中对此进行了描述。

ASP.NET Core中的响应缓存

Response caching减少了客户代理向Web服务器发出的请求数量。 Response caching还减少了Web服务器执行以生成响应的工作量。 Response caching由标头控制,标头指定您希望客户端,代理和中间件如何缓存响应。

ResponseCache属性参与设置响应缓存标头。 客户端中间代理应遵守HTTP 1.1缓存规范下的缓存响应标头。

对于遵循HTTP 1.1缓存规范的服务器端缓存,请使用响应缓存中间件。中间件可以使用ResponseCacheAttribute属性来影响服务器端缓存行为。

如何在ASP.NET Core中配置响应缓存中间件

Response Caching Middleware in ASP.NET Core