Базовый веб-API ASP.Net - атрибут ResponseCache не добавляет заголовок "Cache-Control" в ответ

У меня есть несколько контроллеров в моем приложении 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 dev с "Cache-Control:public max-age=60", но в другом контроллере, когда я добавляю этот атрибут, его добавление "Cache-Control: нет кэша". Я сравнил оба контроллера и методы в них, и они настроены одинаково. Я также попытался добавить промежуточное программное обеспечение ASP .NET Core, рекомендованное здесь, но результаты те же. Я вызываю оба метода с веб-страницы Angular2. Что я могу сделать со стороны клиента (запрос)? или что-то в настройках приложения ASP .NET Core?

2 ответа

Решение

У меня было включено промежуточное программное обеспечение сеанса в файле startup.cs моего проекта ASNETCore webapi. Я удалил его, и теперь он работает для всех вызовов / контроллеров. Не уверен, почему это вызывает проблемы только с одним контроллером.

Вам не хватает завершающих скобок

 [ResponseCache(Duration = 60]

должно быть

 [ResponseCache(Duration = 60)]
Другие вопросы по тегам