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

GIV*_*KEN 4 asp.net iis build

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

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

Dom*_*icz 5

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

使用.EXE和.NET编译器的任何输出也会发生这种情况.

要解决此问题,网站需要一段时间才能启动,您可以配置预编译以启用.有关详细信息的详细信息,请参阅此Microsoft文章.


从你的评论

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

IIS存储它维护的网站列表,并知道在这些端点上接收请求的应用程序服务.对于写在.NET应用程序,IIS将所述请求信息传递到ASP.NET管道,这将需要通过IIS提供的信息并将该信息置于等的各种.NET对象HttpContext,Session等等.

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