为什么IIS首次访问速度慢,但之后更快?

时间:2014-06-03 08:03:08

标签: asp.net iis build

构建我的asp.net解决方案,然后在浏览器中第一次运行它,加载所需的时间增加。然后运行它,时间减少,直到下一次构建。

有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:5)

将网站部署到IIS时,组成网站的程序集仍需要进行本机编译。首次访问时,CLR'解释' MSIL并将其转换为特定于CPU的二进制版本 - 例如x86,x64,Itanium等

这也适用于.EXE以及.NET编译器的任何输出。

要解决此问题,网站需要一段时间才能启动,您可以将预编译配置为打开。有关详细信息,请参阅此Microsoft article


来自你的评论

  

并且,从浏览器中输入的URL,.NET编译器如何知道它需要将MSIL转换为二进制文件?

IIS存储它维护的网站列表,并知道在这些端点上接收请求的应用程序服务。对于用.NET编写的应用程序,IIS会将请求信息传递给 ASP.NET管道,它将获取IIS提供的信息并将信息放入各种.NET对象,如HttpContextSession等。

从那里,ASP.NET管道解决了应用程序的哪个部分响应该请求并为其执行代码。