gpt4 book ai didi

asp.net-mvc - donut 孔缓存 - 排除 MiniProfiler.RenderIncludes

转载 作者:行者123 更新时间:2023-12-04 15:01:16 24 4
gpt4 key购买 nike

我有一个用 OutputCache 装饰的 ASP.NET MVC 操作属性,但问题是 MiniProfiler 输出也被缓存了。我想从缓存( donut 洞)中排除 MiniProfiler 输出,但我不确定如何排除 MiniProfiler.RenderIncludes() 之类的调用。

任何碰巧知道我该怎么做的人?

最佳答案

如果在生产中使用 MiniProfiler,这一点很重要。就好像用户第一次访问页面时启用了 MiniProfiler,所有后续请求都将在 DOM 中包含 MiniProfiler 结果(因为它们现在已被缓存)。不仅结果不正确(因为他们只考虑首次加载),而且所有访问者都将能够看到您的 MiniProfiler 结果。

首先,为了启用 donut 洞缓存,我正在使用:

http://mvcdonutcaching.codeplex.com/

这允许您添加在使用 OutputCache 时不会被缓存的操作。

鉴于上述情况,您可以删除 @using StackExchange.Profiling;从您的布局页面。然后,您可以替换:

@MiniProfiler.RenderIncludes()

和:
@Html.Action("MiniProfiler", "DoNotCache", excludeFromParentCache: true)

我创建了一个 DoNotCache Controller ,所以我所有的不可缓存元素都在一起,但这不是必需的,您可以将此操作放置在任何 Controller 中。
 public ActionResult MiniProfiler()
{
return View();
}

然后 View 本身看起来像:
@using StackExchange.Profiling;
@{
Layout = null;
}
@MiniProfiler.RenderIncludes()

这将确保 MiniProfiler 结果在适当的时候显示出来,并且即使在您使用 DonutOutputCache 的地方也不会缓存在生产环境中。注解。

关于asp.net-mvc - donut 孔缓存 - 排除 MiniProfiler.RenderIncludes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com