除了在 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、precompile 等)才会出现这种行为。
所有静态资源都被正确捆绑和缓存,没有一个请求可能需要超过 1 秒。应用程序池和网站配置为自动启动并永久运行。
我将不胜感激任何提示。
最佳答案
您可以尝试预编译 Razor View 。
你可以找到一个例子 here尽管作者将其作为在项目编译时在 View 中查找语法错误的一种方法。
更多 Material 也可以在 'Can Razor views be compiled?' question 的答案中找到.
关于asp.net - MVC 应用程序重启后每个页面都很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32400067/