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 = "")]
Нет, кажется, работает ....
Из любопытства, почему продолжительность настолько низок? Можете ли вы увеличить в обоих случаях и тест. Помните, что он находится в секундах. Также результат действия будет кэшироваться только в том случае, если ответ не содержит cookie - см. Здесь http://stackoverflow.com/questions/20027813/why-is-output-caching-not-working-for-my- asp-net-mvc-4-app –
Я получаю около 30 запросов за секунду (и изменения данных в среднем каждые 3 секунды), поэтому его так мало. При текущей настройке я должен получить только 20 запросов к базе данных в минуту, но я получаю 1800. Ответ не включает файлы cookie ... –