Asp.net IIS 8.0中内核模式和用户模式缓存的区别

Asp.net IIS 8.0中内核模式和用户模式缓存的区别,asp.net,caching,iis-8,http.sys,Asp.net,Caching,Iis 8,Http.sys,内核模式缓存和用户模式缓存之间的区别是什么?如何跟踪两者?内核模式缓存本质上是在操作系统级别处理缓存请求,因此存储在其中的内容可以被访问,而无需进入其他常规管道(即,它不必进入ASP.NET或IIS级别的缓存来检查内容): 因此,请求会命中初始缓存(http.sys),找到它需要的内容并将其发送回,而无需继续沿着管道进行 因此,它通常相当快。但是它的一个限制是,它不支持许多用户级功能,例如身份验证和授权,因此它可能不适合所有场景 另一方面,用户模式将填补内核模式无法使用的空白,内核模式主要围绕

内核模式缓存和用户模式缓存之间的区别是什么?如何跟踪两者?

内核模式缓存本质上是在操作系统级别处理缓存请求,因此存储在其中的内容可以被访问,而无需进入其他常规管道(即,它不必进入ASP.NET或IIS级别的缓存来检查内容):

因此,请求会命中初始缓存(http.sys),找到它需要的内容并将其发送回,而无需继续沿着管道进行

因此,它通常相当快。但是它的一个限制是,它不支持许多用户级功能,例如身份验证和授权,因此它可能不适合所有场景

另一方面,用户模式将填补内核模式无法使用的空白,内核模式主要围绕授权/认证的内容(因为它需要检查用户是否可以实际访问内容),但也有可能导致http.sys缓存无法使用

关于实际检查内容是否被缓存(以及可能的原因),您可以使用FREB(失败的请求事件缓冲)。以下命令可用于确定哪些内容在内核模式下被缓存:

netsh http show cachestate

谢谢Rion的回复,现在我对这两者的区别有了一点了解。