3

Я пытаюсь кэшировать выходной контроллер, как я сделал в ASP.NET MVC 5.Кэширование в ASP.NET 5 в контроллере

Я сделал это в ASP.NET MVC 5 контроллера:

[OutputCache(Duration = 60, VaryByParam = "*", Location = OutputCacheLocation.ServerAndClient)] 

Теперь я пытаюсь что в ASP.NET MVC 5 6:

контроллер

Атрибут:

[ResponseCache(CacheProfileName = "TestCache")] 

в моей Startup.cs:

//Caching 
      services.Configure<MvcOptions>(options => options.CacheProfiles.Add("TestCache", new CacheProfile() 
      { 
       Duration = 3600, 
       Location = ResponseCacheLocation.Any, 
       VaryByHeader = "*" 
      })); 

я добавил точку останова в моем TestController, но breakboint обжигают каждый раз.

Как это исправить?

ответ

0

Вы должны использовать новые атрибуты описанных действий MVC here. Например

[ResponseCache(Duration=60)] 

соответствует

[OutputCache(Duration = 60)] 

Он помещает HTTP заголовок

Cache-Control: public,max-age=60 

в соответствующем ответе HTTP.

Если вы предпочитаете использовать профили кэширования, вы найдете соответствующую информацию об использовании в той же статье (см. here).

+0

Спасибо @Oleg, я тестировал ... но не работает ... Контрольная точка останова запускается каждый раз :( – chemitaxis

+0

Я прочитал ее в этой статье: Кэширование ответов не кэширует ответы на веб-сервере. Оно отличается от кэширование вывода, которое будет кэшировать ответы в памяти на сервере в более ранних версиях ASP.NET и ASP.NET MVC. Средство промежуточного программного обеспечения для кэширования планируется добавить в ASP.NET MVC 6 в будущей версии. – chemitaxis

+0

Мой последний комментарий, является правильный ответ, пожалуйста, отредактируйте и я буду проверять как хорошо;) – chemitaxis

Смежные вопросы