【问题标题】:Slow page serving on ASP.NET MVC 4 web siteASP.NET MVC 4 网站上的慢页面服务
【发布时间】:2015-10-31 03:41:24
【问题描述】:

我的网站某些页面的随机响应非常缓慢。 我的页面通常需要 1 秒才能加载,但在某些情况下,出乎意料的是,它可能需要 10 秒甚至更长时间。

在此处找到 MiniProfiler 输出的屏幕截图:

从输出中可以看出,ASP.NET 的堆栈中有些东西卡住了,而实际代码足够快。

这种缓慢有时会发生,即使在我正常导航页面期间(不仅在此页面上)也是如此。在我的本地机器上,一切总是很快,而在生产服务器和登台服务器(配置完全相同)上都会发生同样的问题。

我认为我在服务器或网络应用程序的配置中做错了什么。或者我可能以错误的方式使用了一些内部 ASP.NET 对象(如会话)。

您能否提供任何可以促使我找到正确解决方案的提示来帮助我?

谢谢

cghersi

【问题讨论】:

  • 当多个用户同时访问或复制单个用户时是否会发生这种情况?
  • 单个用户也可以复制
  • 您是否使用捆绑,例如 @Styles.Render("~/Content/MyStyle.css") 或类似的东西?
  • 一些例子可以是 或@Html.Partial("_CommonJavascript")

标签: c# asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

虽然这可能不是一个答案,但很值得发表评论,所以写在这里......目前我可以想到以下检查:

1) 捆绑和缩小完成后验证,并且这些缩小版本正在呈现给浏览器。

2) 如果某些页面很慢,您可以检查这些操作方法中的逻辑是什么。从这些操作方法调用的数据库/服务查询有多昂贵。

3) 在这些操作中部署检测/日志记录,并查看在这些操作中花费的持续时间。

【讨论】:

  • 谢谢 Siva,在检测(很多)代码之后,我发现主要的罪魁祸首似乎是控制器操作中的 View() 方法返回实际的 cshtml 页面(我我正在使用剃刀)。此外,在 View() 方法的调用和我需要服务的 CSHTML 页面内代码的开头之间是一些内部 ASP.NET 机制。这有什么线索吗?
  • 这听起来很奇怪。您是否尝试过提供不带扩展名的视图路径和名称(cshtml/vbhtml)。在布局页面中检查任何可能延迟的潜在代码,例如自定义助手/逻辑等。您是否实现了任何自定义过滤器?除了这些,我想不到,这一刻!!
  • 还要检查您是否延迟加载任何实体框架/orm 数据。如果是,请在调用视图之前尝试将它们投影到适当的对象/列表/数组。
猜你喜欢
  • 2021-07-15
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多