Asp.net 第一页加载的编译时间

Asp.net 第一页加载的编译时间,asp.net,compilation,Asp.net,Compilation,我为某个项目从php切换到asp.net,创建了一个web应用程序,一切都进行得很顺利 但我有一个问题……当我第一次浏览我的网站时,它会加载大约8-10秒。我假设代码是在这段时间编译的。如果我回到网站,它会加载得很快。但是,如果我第二天回到它,它将再次编译 我想知道有人能详细说明发生了什么事吗?我知道它需要编译一次,但为什么第二天还要编译呢?有什么我可以避免的吗 感谢您的建议/见解 安德鲁:你重新启动机器了吗?每次重新启动IIS时,都需要重新编译站点。否则,它可能不会重新编译,而是命中磁盘,因为

我为某个项目从php切换到asp.net,创建了一个web应用程序,一切都进行得很顺利

但我有一个问题……当我第一次浏览我的网站时,它会加载大约8-10秒。我假设代码是在这段时间编译的。如果我回到网站,它会加载得很快。但是,如果我第二天回到它,它将再次编译

我想知道有人能详细说明发生了什么事吗?我知道它需要编译一次,但为什么第二天还要编译呢?有什么我可以避免的吗

感谢您的建议/见解


安德鲁:你重新启动机器了吗?每次重新启动IIS时,都需要重新编译站点。否则,它可能不会重新编译,而是命中磁盘,因为代码不在缓存中


当您部署应用程序时,这不应该是一个问题,只有在您有开发设置的情况下。

您可以通过从VS Professional部署或使用命令行asp.net来预编译应用程序

为什么第二天又这样做

因为ASP.NET应用程序重新启动

可能的原因:

  • IIS应用程序池配置为回收工作进程
  • 其他应用程序涉及(修改或至少只是重写)web.config
有什么我可以避免的吗

  • 禁用IIS应用程序池回收
  • 确保web.config未被任何其他进程触及。这些通常是反vurus程序,但非常罕见。因此,第一种选择是99.9%是原因
  • 预编译ASP.NET应用程序。还有几页解释了怎么做

  • 请看一看ASP.NET应用程序的生命周期:

    IIS 5和6-


    IIS 7-

    所以它是Web应用程序而不是网站,是吗?只是再确认一下。磁盘上的文件不太可能有8秒的寻道时间。很明显,您从未使用过我的开发机器。澄清一下,我指的不仅仅是磁盘寻道时间。在虚拟机中交换页面的整个过程会导致速度缓慢。但是我怀疑其他的海报是对的,IIS因为某种原因正在重新启动。谢谢,回收是开着的,所以我把它关掉了。预编译链接也很有用。