ASP.Net核心Web API - ResponseCache属性未添加" Cache-Control"标题为响应

时间:2017-06-02 04:31:55

标签: asp.net-core-mvc cache-control asp.net-core-webapi responsecache

我的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"。我比较了它们中的控制器和方法,它们配置相同。我还尝试添加推荐here的ASP.NET核心中间件但结果相同。我从Angular2网页调用这两种方法。我可以从客户端(请求)做些什么吗?或者ASP.NET Core应用程序设置中的某些内容?

2 个答案:

答案 0 :(得分:0)

您缺少一个尾随的括号

 [ResponseCache(Duration = 60]

需要

 [ResponseCache(Duration = 60)]

答案 1 :(得分:0)

我在ASNETCore webapi项目的startup.cs文件中启用了会话中间件。我删除了它,它现在适用于所有呼叫/控制器。不知道为什么它只引起一个控制器的问题。