【问题标题】:Intermittent AcquireRequestState with ImageResizer使用 ImageResizer 的间歇性 AcquireRequestState
【发布时间】:2016-11-07 00:27:08
【问题描述】:

我会尽我所能描述我所能描述的。我们有一个使用 EpiServer(9) 作为 CMS 的 mvc (4) 站点。我们最近购买了 ImageResizer (4) 并将其集成到我们的项目中,它在我的本地机器上运行良好。部署到我们的测试环境时,我们注意到加载页面时出现间歇性延长延迟。使用 New Relic,我们发现花费了这么长时间的步骤是 AcquireRequestState 步骤。我确信这还不足以调试问题,但我们将不胜感激任何有关查看位置的帮助。要点是,使用 ImageResizer 我们会延迟,如果没有 ImageResizer,我们不会。是的,我们正在使用会话。

【问题讨论】:

  • 我最近听说有人有类似的问题,并追踪到特定的 StructureMap 版本。他们升级了 StructureMap,问题就消失了。不知道这是否对您的问题有任何影响。
  • @TedNyberg 感谢您的回复,我更新了我的 StructureMap 版本,但没有成功,如果有的话,它变得最糟糕。在这一点上,最简单的解决方案是删除 ImageResizer,这很遗憾,因为我们确实为此付出了代价。再次感谢您的建议
  • 您正在运行哪些 Windows 版本?它们在测试和开发上是否相同?这通常是环境问题。
  • 这些延迟是否发生在网页请求或图像文件请求上?
  • @EricHerlitz 我的开发和测试环境不同。由于在我们的网站上安装 ImageResizer 并没有获得很多好处,我们很可能只是不使用它。它可能暴露了一些需要稍后解决的问题,但现在,我们将提出这个问题

标签: newrelic imageresizer episerver


【解决方案1】:

ImageResizer 不参与请求的那个阶段;它专门使用 PostAuthorize 和 PreSendRequestHeaders,这两者都发生得更晚。

注册了 1 个(或没有事件)的空白 HttpModule 通常能够重现此类问题。

【讨论】:

    【解决方案2】:

    我们的网站上遇到了同样的问题。 New Relic 向我们展示了交易的 AcquireRequestState 步骤中的长时间延迟。 我们通过禁用将SessionStateAttribute 添加到调整图像大小的控制器的会话来解决此问题。控制器的动作在 JS 中通过 Ajax 调用。

    [SessionState(SessionStateBehavior.Disabled)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-15
      • 2011-12-18
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多