Asp.net mvc 圆环孔缓存-排除MiniProfiler.RenderIncludes
我有一个ASP.NET MVC操作,它用Asp.net mvc 圆环孔缓存-排除MiniProfiler.RenderIncludes,asp.net-mvc,mvc-mini-profiler,donut-caching,Asp.net Mvc,Mvc Mini Profiler,Donut Caching,我有一个ASP.NET MVC操作,它用OutputCache属性修饰,但问题是MiniProfiler输出也被缓存。我想从缓存中排除MiniProfiler输出(甜甜圈洞),但我不确定如何排除MiniProfiler.RenderIncludes()之类的调用 有谁知道我如何做到这一点吗?如果在生产中使用MiniProfiler,这一点很重要。就像启用了MiniProfiler的用户第一次访问页面一样,所有后续请求都将在DOM中包含MiniProfiler结果(因为它们现在被缓存)。结果不仅是
OutputCache
属性修饰,但问题是MiniProfiler输出也被缓存。我想从缓存中排除MiniProfiler输出(甜甜圈洞),但我不确定如何排除MiniProfiler.RenderIncludes()之类的调用
有谁知道我如何做到这一点吗?如果在生产中使用MiniProfiler,这一点很重要。就像启用了MiniProfiler的用户第一次访问页面一样,所有后续请求都将在DOM中包含MiniProfiler结果(因为它们现在被缓存)。结果不仅是错误的(因为他们只考虑第一次加载),而且所有访问者都能看到你的迷你轮廓仪结果。 首先,为了启用圆环孔缓存,我使用了: 这允许您添加在使用OutputCache时不会缓存的操作 鉴于上述情况,您可以使用StackExchange.Profiling删除
@代码>从布局页面。然后,您可以替换:
@MiniProfiler.RenderIncludes()
与:
我已经创建了一个DoNotCache控制器,所以所有不可缓存的元素都在一起,但这不是必需的,您可以在任何控制器中放置此操作
public ActionResult MiniProfiler()
{
return View();
}
然后视图本身看起来就像:
@using StackExchange.Profiling;
@{
Layout = null;
}
@MiniProfiler.RenderIncludes()
这将确保在适当的时候显示MiniProfiler结果,即使在使用DonutOutputCache
注释的地方,也不会在生产中缓存结果。这有关系吗?如果页面来自输出缓存,那么操作和控制器不会被调用,所以探查器不会显示任何内容,不是吗?这对于服务器端来说是一个非常好的观点,但是MiniProfiler也会输出有关DOM中加载时间等的信息,这会很有趣。谢谢-我将再次研究。
@using StackExchange.Profiling;
@{
Layout = null;
}
@MiniProfiler.RenderIncludes()