繁体   English   中英

ASP.Net上的预编译和启动时间

[英]Precompilation and startup times on ASP.Net

我正在ASP.Net 2.0中开发一个(相对较小的)网站。 在发送可执行文件之前,我还使用nAnt对我的项目进行了一些简单的调整。 在目前的状态下,该网站使用“预编译”

aspnet_compiler.exe -nologo -v ${Appname} -u ${target}

我注意到在重新启动IIS池之后(在空闲关闭或循环之后),应用程序在重新联机(并且到达Application_start)之前最多需要20秒。

我在Visual Studio中直接调试时没有相同的问题(启动需要2秒),所以我想知道aspnet_compiler是不是真的好主意。

我在MSDN上找不到多少。 如何编译您的网站进行制作?

确保:

  1. 您正在使用Web应用程序项目而不是Web站点项目,这将导致代码隐藏的预编译二进制文件
  2. 您已关闭web.config文件中的调试代码生成 - 我想如果这与您使用aspnet_compiler时的代码可能会被重新编译不同

如果您尝试过这些,您可以尝试在组件上运行ngen,从而节省JIT时间?

为了最终的反应,不要让你的应用程序关闭。

第一种方法是确保它非常受欢迎,以便始终有人使用它。

或者,可以使用从其他位置获取一个小的保持活动页面作为计划活动来保持您的网站“热”。

如果您的网站编译为可更新,您将在虚拟目录中看到一堆.ASPX文件。 这些必须在启动时编译。 这样你就可以进入并改变网络用户界面本身。 这是网站和Web应用程序的默认设置。

关键是要确保IIS应用程序池永远不会关闭。 这是代码实际托管的地方。 将“空闲超时”(在“高级设置”下)设置为非常高的值,例如1440分钟(24小时),以确保只要有人每天一次点击您的网站就不会关闭它。

无论何时部署新代码,或者如果超出任何流量超出此空闲超时时间,您仍将拥有JIT时间。

配置IIS 7.x空闲超时

确保在web.config <compilation debug=false>设置此项。 在我的例子中,我还有一个批处理文件,在给用户之前发出对所有主页的请求(页面加载模拟)。

@Simon:

  • 该项目是一个Web应用程序。 网站启动速度较慢(我不知道它有不同的代码组织旁边的事件发生率)?
  • 我检查了,当我在调用aspnet_compiler之后编辑web.config时,我没有触及调试值(但是如果我不触摸web.config,我会检查网站启动速度不快,只是为了制作当然)

(我肯定会看看ngen,我不知道那个工具。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM