菜单

ASP.NET 第一次加载慢的解决方法

10/01/2018 - TPV

ASP.NET 第一次加载慢的解决方法

原因

根据网上的资料,第一次加载慢的原因大概有以下几种:

  1. ASP.NET 默认是动态编译的,第一次时间都浪费在编译加载上了。
  2. 第一次运行需要验证数字签名。
  3. Entity Framework初始化造成的。在首次使用时,Entity Framework会根据数据库中的信息在内存生成一个映射视图(mapping views),操作非常耗时。

解决方案

目前还没有一个统一的,解决方案,具体的可以尝试以下几种方案:

  1. 预编译,参考ASP.NET 网站预编译概述
  2. 去掉数字签名,参考关于asp.net程序第一次运行速度慢的问题解决办法
  3. 使用“预加载模块”,参考IIS 8.0 Application Initialization

参考资料

  1. http://www.allytel.com/_app_data/news/2013/news_20130818_121818.aspx
  2. http://q.cnblogs.com/q/59572/
  3. http://q.cnblogs.com/q/45228/
  4. http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization(IIS 8)
    a. 安装预加载模块
    b. 应用程序池-高级设置-启动模式:AlwaysRunning
    c. 应用程序池-高级设置-进程模型-闲置超时:1740 (分钟)
    d. 应用程序-高级设置-常规-预加载已启用:True
  5. http://www.cnblogs.com/shanyou/archive/2010/12/21/1913199.html (IIS 7.5)
  6. http://www.cnblogs.com/chehaoj/p/3432100.html (IIS 7.5)
  7. http://blog.csdn.net/rnhhb/article/details/46625097 (IIS 7.5)
  8. http://blog.hackroad.com/operations-engineer/windows_server/2633.html (IIS 7.5)
  9. http://www.cnblogs.com/wangjinsns/p/4015762.html?utm_source=tuicool&utm_medium=referral (ServiceAutoStartProvider)
  10. http://www.cnblogs.com/dudu/p/entity-framework-warm-up.html (Entity Framework)

经本人测试,方案1和方案2,对于.NET 4.5 IIS8 已经无效,使用方案3解决此问题。