2016-08-21 2 views
1

У нас есть два контроллера с OutputCaching, один работает отлично, второй один не кэш ...ASP.NET WebAPI OutputCache не работает

Пример рабочего контроллера:

[OutputCache(Duration = 1, VaryByParam = "idc,key")] 
    public dynamic Get(string idc, string key) 
    { 

     string coins = idc; 
     string size = key; 
     try 
     { 
      Models.api.dicebets bets = new Models.api.dicebets(); 
      return bets.LastBets(coins, size); 
     } 
     catch 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Invalid request"); 
     } 
    } 

И пример сходный контроллер с неработающим OutpuCache:

[OutputCache(Duration = 3)] 
    public dynamic Get() 
    { 
     try 
     { 
      Models.api.dicebets bets = new Models.api.dicebets(); 
      return bets.HighRolls(); 
     } 
     catch 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Invalid request"); 
     } 
    } 

Я уже перепробовал все комбинации настроек OutputCache как:

[OutputCache(Duration = 3, VaryByParam = "None")] 
[OutputCache(Duration = 3, VaryByParam = "*")] 
[OutputCache(Duration = 3, VaryByParam = "")] 

Нет, кажется, работает ....

+0

Из любопытства, почему продолжительность настолько низок? Можете ли вы увеличить в обоих случаях и тест. Помните, что он находится в секундах. Также результат действия будет кэшироваться только в том случае, если ответ не содержит cookie - см. Здесь http://stackoverflow.com/questions/20027813/why-is-output-caching-not-working-for-my- asp-net-mvc-4-app –

+0

Я получаю около 30 запросов за секунду (и изменения данных в среднем каждые 3 секунды), поэтому его так мало. При текущей настройке я должен получить только 20 запросов к базе данных в минуту, но я получаю 1800. Ответ не включает файлы cookie ... –

ответ

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