Использование HttpResponse.DisableKernelCache - PullRequest
3 голосов
/ 17 декабря 2011

При работе в ASP.NET объекты HttpResponse имеют метод DisableKernelCache(). Например, HttpHandler мог:

public void ProcessRequest(HttpContext context)
{
    context.Response.DisableKernelCache();
    ...

MSDN услужливо описывает этот метод как:

Отключает кеширование ядра для текущего ответа.

Зачем мне использовать эту функцию?

1 Ответ

6 голосов
/ 17 декабря 2011

Под "кэшированием в ядре" они подразумевают кэширование, выполняемое драйвером HTTP http.sys.

При включенном кэшировании в ядре (что происходит, когда вы включаете OutputCaching с параметрами по умолчанию и не используетестрока запроса в ваших URL), содержимое возвращается пользователю без каких-либо обратных вызовов в пользовательский режим.Возможно, вы захотите отключить это в тех случаях, когда вам нужно предоставлять разный контент разным пользователям или если вам нужно преждевременно истечь из кэша и т. Д.

Некоторые функции ASP.NET, такие как VaryByContentEncoding, неявно отключают кэширование ядрадля вас, чтобы правильно функционировать.

...