【问题标题】:MVC application is slow for every page after restart重新启动后,MVC 应用程序对于每个页面都很慢
【发布时间】:2015-11-30 17:32:30
【问题描述】:

除了臭名昭著的慢启动问题,它发生在 IIS 上运行的 ASP.NET 应用程序中,我们还遇到了另一个问题。

在重新启动应用程序(例如 iisreset)后,第一个请求像往常一样需要一些时间。但是,在当前应用程序中,对尚未加载的页面的所有其他请求在第一次点击时大约需要 10-12 秒!

页面加载后,对同一资源的所有其他请求再次变快(通常为 80-130 毫秒)。对于从其他客户端机器首次加载也是如此,因此这不是客户端缓存问题。

例如:

Machine | Request           | Duration |
A       | GET /             | 43000 ms | (wakeup)
A       | GET /             |    90 ms |
B       | GET /             |    90 ms |
A       | GET /registration | 12000 ms |
A       | GET /registration |   110 ms |
A       | GET /registration |   110 ms |
A       | GET /registration |   110 ms |
A       | GET /foobar       | 11000 ms |
A       | GET /foobar       |    85 ms |
B       | GET /baz          | 10000 ms |
A       | GET /baz          |   100 ms |

有趣的是,当我们在 DEV 机器上运行应用程序时(debug=true 等),这不会发生。只有当我们发布网站(debug=false、预编译等)时才会出现这种行为。

所有静态资源都被正确地捆绑和缓存,没有一个请求可能真正花费超过 1 秒。应用程序池和网站配置为自动启动并永久运行。

我将不胜感激任何提示。

【问题讨论】:

  • 您找到解决方案了吗?我正在拔头发(比喻)。
  • 不。迄今为止最好的解决方案:启动后卷曲所有 URL。 ://

标签: asp.net asp.net-mvc performance asp.net-mvc-4 iis-7.5


【解决方案1】:

您可以尝试预编译 Razor 视图。

您可以找到一个示例 here,尽管作者将其作为在项目编译时查找视图中的语法错误的一种方式。

更多材料也可以在'Can Razor views be compiled?' question的回复中找到。

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多