MVC应用程序在重新启动后,每个页面都变得缓慢。

14 浏览
0 Comments

MVC应用程序在重新启动后,每个页面都变得缓慢。

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

在应用程序刚启动(例如iisreset)之后,第一个请求通常需要一些时间。然而,在当前应用程序中,对尚未加载的页面的所有其他请求在第一次访问时需要大约10-12秒的时间!

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

例如:

机器 | 请求           | 持续时间 |
A       | GET /             | 43000 ms |(唤醒)
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 |

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

所有静态资源都已正确打包和缓存,并且没有一个请求可能需要超过1秒的时间。应用程序池和网站都被配置为自动启动并永久运行。

如果有任何线索,我将非常感激。

0
0 Comments

MVC应用程序在重启后每个页面都变慢的问题可能是由于Razor视图未预编译造成的。可以尝试预编译Razor视图来解决这个问题。以下是解决方法:

1. 可以尝试预编译Razor视图。可以在这里找到一个示例,尽管作者将其呈现为在项目编译时找到视图中的语法错误的方法。

2. 进一步的资料也可以在“Can Razor views be compiled?”问题的回答中找到。

以上是解决MVC应用程序在重启后每个页面都变慢的问题的方法。

0