ASP.Net Core Web API - ResponseCache 属性未将 "Cache-Control" header 添加到响应中

ASP.Net Core Web API - ResponseCache attribute is not adding "Cache-Control" header to the reponse

我的 ASP .NET Core 应用程序中有多个控制器,我在一些方法上使用这样的 ReponseCache 属性:

//controller 
[Route("api/[controller]")]
[EnableCors("CorsPolicy")]
public class InsightsApiController : Controller

//method    
[Route("CoursesTextContent")]
[HttpGet]
[DecryptFilter]
[ResponseCache(Duration = 60)]
public IActionResult GetCoursesContent(string locale, string tabKey, string widgetType)

我遇到的问题是,对于一个控制器,它工作正常,我可以在 chrome 开发工具中看到响应 "Cache-Control:public max-age=60",但是当我添加此属性时在另一个控制器中它添加 "Cache-Control:no-cache"。我比较了它们中的控制器和方法,它们的配置相同。我也尝试添加 ASP.NET 推荐的核心中间件 here 但结果相同。我正在从 Angular2 网页调用这两种方法。我可以从客户端(请求)做些什么吗?或 ASP.NET 核心应用程序设置中的内容?

您缺少一个尾随括号

 [ResponseCache(Duration = 60]

需要

 [ResponseCache(Duration = 60)]

我在 ASNETCore webapi 项目的 startup.cs 文件中启用了一个会话中间件。我删除了它,它现在对所有 calls/controllers 有效。不确定为什么它只导致一个控制器出现问题。