我有一个在 IIS 7.5/.NET Framework 4.0 服务器上运行的 asp.net Web 应用程序。每当我导航到此服务器上运行的任何网页时,初始加载大约需要 12 秒。之后,导航速度很快(大约 0.5 秒,即使是在点击率较高的页面上)。如果您让它闲置两分钟,它会在下一个请求时再次减慢速度。我可以看出这是因为连接超时设置为 120 秒...我猜测在该限制之后,站点必须在下一个页面请求时重新加载所有内容。该站点确实调用了两个不同的数据库,但是,默认页面不应该这样做,并且初始加载时间较长。我曾尝试为 IIS 7.5 设置应用程序初始化,但注意到完成此操作后充其量也有非常微小的变化。从我读到的内容来看,IIS 7.5 中的这个模块似乎取得了好坏参半的成功。是否有任何其他方法可以绕过此加载时间,而不必仅依赖高连接超时值,因为无论如何这都无法解决初始加载时间?
当WebApp长时间空闲时,IIS将关闭该应用程序以节省资源。这可能发生在你的情况下。
它还表示,如果最后一个用户会话超时,应用程序将关闭。我希望this http://www.codeproject.com/Articles/121096/Web-Server-and-ASP-NET-Application-Life-Cycle-in-D文章将正确指导您。
看看当请求到达运行时时会发生什么。
- 当 ASP.NET 收到对某个资源的第一个请求时
application,一个名为ApplicationManager的类创建一个应用程序
领域。 (应用程序域提供应用程序之间的隔离
对于全局变量,并允许卸载每个应用程序
分别地。)
- 在应用程序域中,名为 Hosting 的类的实例
创建环境,提供对有关信息的访问
应用程序,例如应用程序所在文件夹的名称
被储存了。
- 创建应用程序域和托管后
实例化环境对象,ASP.NET 创建并初始化
核心对象,例如 HttpContext、HttpRequest 和 HttpResponse。
- 所有核心应用程序对象都已初始化后,
应用程序通过创建一个实例来启动
HttpApplication 类。
- 如果应用程序有 Global.asax 文件,则 ASP.NET 会创建
Global.asax 类的实例,派生自
HttpApplication 类并使用派生类来表示
应用。
看看它是如何发生的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)