使用ASP.NET 4的自动启动特性,解决ASP.NET第一次访问速度慢问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用ASP.NET 4的自动启动特性,解决ASP.NET第一次访问速度慢问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1410字,纯文字阅读大概需要3分钟。
内容图文
些web应用在可以处理用户访问之前,需要装载很多的数据,或做一些花费很大的初始化处理。今天使用 ASP.NET 的开发人员经常使用应用的Global.asax 文件中的 “Application_Start”事件处理函数来做这些工作(该事件是在第一个请求执行时触发的)。他们要么设计定制脚本,周期性地向应用发假的请求,来“唤醒它(wake it up)”,从而在客户访问之前执行这个代码,或者就让那不幸的第一个访问者等着这个逻辑执行完才处理其请求(这可以给这些用户造成很长的耽搁)。
ASP.NET 4中有一个叫“自动启动(auto-start)”的新特性,可以较好地解决这个场景, 可以在IIS 7.5(随Windows 7和Windows Server 2008 R2发布)上运行 ASP.NET 4时使用。这个自动启动特性提供了一个可控制的方式来启动一个应用工作进程,初始化ASP.NET 应用,然后接受HTTP请求。
将一个ASP.NET 4应用配置成自动启动
要使用ASP.NET 4自动启动特性,你首先配置IIS应用池工作进程,使在其中运行的应用在web服务器最先装载时即自动启动。配置方法是:
1. 找到网站所在的应用程序池,然后右键打开高级设置
2. 修改启动模式为:AlwaysRunning
如果你运行Windows任务管理器,点击“显示所有用户的进程”复选框,然后上面对话框点确定的话,瞬间就会看到一个新的“w3wp.exe” 工作进程启动起来了。
一个单一IIS应用池工作进程可以宿主多个ASP.NET 应用,你可以通过在网站的高级设置中,设置自动启动为True:
接下来,要设置下网站预加载启动所要执行的逻辑,在IIS里面也就是要添加一个自定义的serviceAutoStartProvider,具体办法如下:
首先,实现继承自IProcessHostPreloadClient的类:
这段代码做的一件事情就是在热启动时让系统自动访问一次网站,让IIS自己来做这个人品不好的人。
在serviceAutoStartProviders节中,打开集合,点击添加,写上名字和类名,这个名字要记住,因为下一步需要填写这个名字.如图:
在sites节点中打开集合,选中我们需要设定的站点,在下面的属性框中打开applicationDefaults节点,将serviceAutoStartEnabled设为true,将上一步增加的serviceAutoStartProvider的Name填写到这里.
到此站点的热启动已经配置完毕.
配置好后可能会遇到的一些问题以及注册事项:
1.在代码中最好将所有的都用try{}catch{}包住,因为如果这里抛出的异常会导致应用程序停止.
2.运行的状态我们可以从事件管理器中进行查看,或是自己在代码中写日志记录运行的状态.
3.这个类中所做的并不会引用站点的启动,不会执行应用程序的生命周期,也就是说不会调用Application_Start以及其它生命周期过程.所以在本例中我们再会NEW一个请求这个站点.
更多.net开发资讯请关注近乎/Spacebuilder开发分享社区》》
原文:http://www.cnblogs.com/wangjinsns/p/4015762.html
内容总结
以上是互联网集市为您收集整理的使用ASP.NET 4的自动启动特性,解决ASP.NET第一次访问速度慢问题全部内容,希望文章能够帮你解决使用ASP.NET 4的自动启动特性,解决ASP.NET第一次访问速度慢问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。