使用HttpResponse.DisableKernelCache

Jus*_* R. 3 asp.net caching httpresponse

在ASP.NET中工作时,HttpResponse对象有一个DisableKernelCache()方法.例如,HttpHandler可以:

public void ProcessRequest(HttpContext context)
{
    context.Response.DisableKernelCache();
    ...
Run Code Online (Sandbox Code Playgroud)

MSDN有用地将此方法描述为:

禁用当前响应的内核缓存.

我为什么要使用这个功能?

Ric*_*kNZ 6

通过"内核缓存",它们指的是HTTP驱动程序http.sys完成的缓存.

启用内核缓存(当您使用默认参数启用OutputCaching并且不在URL中使用查询字符串时会发生这种情况),内容将返回给用户,而不会回调到用户模式.如果您需要向不同的用户提供不同的内容,或者您​​需要过早地使缓存过期等,您可能希望禁用它.

某些ASP.NET功能(如VaryByContentEncoding)会为您隐式禁用内核缓存,以便正常运行.