Я бы хотел использовать кэширование вывода с WCF Data Services, и хотя нет ничего специально встроенного для поддержки кэширования, существует метод OnStartProcessingRequest, который позволяет мне подключать и устанавливать кешируемость запроса с использованием обычных механизмов ASP.NET.
Но меня беспокоит перезапуск рабочего процесса из-за чрезмерного потребления памяти при кэшировании больших ответов. Есть ли способ указать верхний предел для кэша вывода ASP.NET, чтобы в случае его превышения элементы в кэше были отброшены?
Я видел настройки конфигурации кэширование , но из документации у меня сложилось впечатление, что это для явного кэширования через объект Cache, поскольку существует отдельный outputCacheSettings , который не имеет атрибуты, связанные с памятью.
Вот фрагмент кода из поста Скотта Хансельмана , который показывает, как я устанавливаю кешируемость запроса.
protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
base.OnStartProcessingRequest(args);
//Cache for a minute based on querystring
HttpContext context = HttpContext.Current;
HttpCachePolicy c = HttpContext.Current.Response.Cache;
c.SetCacheability(HttpCacheability.ServerAndPrivate);
c.SetExpires(HttpContext.Current.Timestamp.AddSeconds(60));
c.VaryByHeaders["Accept"] = true;
c.VaryByHeaders["Accept-Charset"] = true;
c.VaryByHeaders["Accept-Encoding"] = true;
c.VaryByParams["*"] = true;
}