问题描述
我们正在将一个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中配置响应缓存中间件