IIS 7.5 Application Warm-Up Module

有些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请求。

另外微软设计了一个模块,让应用程序可以有充足的时间暖机,暖机完成后才会开始接收第一个 HTTP 要求,这个模块即是 Application Warm-up 模块。Application Warm-up 模块是负责在应用程序处理第一个要求前,先给予其初始化的时间,让它可以在服务第一个要求前先做完初始化的工作后,再开放处理第一个要求。Application Warm-up 具有下列的功能:

  1. 通过工作进程预载(pre-load worker process)来减少响应所需要的时间,尤其是第一个响应。
  2. 通过工作进程预加载以增加在应用程序集区回收时的强固性。
  3. 自定义应用程序预加载功能。

目前 Application Warm-up 模块仍然在 Beta 的测试阶段,可利用 Web Platform Installer 2.0 来安装,但目前只支持 IIS 7.5(即 Windows 7 与 Windows Server 2008 R2 内建的版本),未来可能会扩大支持到 IIS 7.0。

安装后再每个网站上都会看到下面Application Warm-up图标(Application Warm-up 模块图标只会在网站节点以及应用程序节点出现,服务器节点以及一般目录节点是不会出现的):

接下来,我们启动 Application Warm-up 模块,到设置 Application Warm-up 的界面,并将两个复选框都打勾:

接着,在右方的指令列中,按 Add Request,并且输入 /Default.aspx,这代表当 Application Warm-up 会针对这个网页做预加载的工作,如同应用程序预载一般(如果是加入预设网页的话,只要”/”就可以了)。

WCF and AppFabric Auto-Start:http://blogs.msdn.com/b/endpoint/archive/2010/12/09/wcf-and-appfabric-autostart.aspx

Application Warm-Up:http://www.iis.net/download/ApplicationWarmUp

台湾微软 IIS网站 http://www.microsoft.com/taiwan/technet/iis/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

在Go程序中实现服务器重启的方法

Go被设计为一种后台语言,它通常也被用于后端程序中。服务端程序是GO语言最常见的软件产品。在这我要解决的问题是:如何干净利落地升级正在运行的服务端程序。 目标:...

34470
来自专栏破晓之歌

Django从1.8升级到2.0注意事项 转

由于Django的产品周期问题,我们决定将Django从当前开发的1.8版本升级到2.0版本,此新最版本已不再支持python2,所以开发语言也需要相应升级到3...

10010
来自专栏Android开发指南

eclipse遇到的问题

409100
来自专栏酷玩时刻

10分钟搭建属于自己的ngork服务器,实现内网穿透Window启动脚本Mac Linux启动脚本

ngrok 是一个使用go语言编写的反向代理软件,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

48430
来自专栏康怀帅的专栏

Linux systemd 详解

目前几乎所有的 Linux 发行版已切换到 systemd。 GitHub:https://github.com/systemd/systemd 官方网站:ht...

45040
来自专栏Alice

1、大部分社交平台接口不支持https协议。

参考文献来自:http://wiki.mob.com/ios9-%E5%AF%B9sharesdk%E7%9A%84%E5%BD%B1%E5%93%8D%EF%...

37350
来自专栏张善友的专栏

.NET Migration工具

Migration是一种分布环境下的数据库同步工具,出现在Ruby on Rail框架里,MigratorDotNet是一个.NET类似于Ruby on Rai...

23290
来自专栏睿哥杂货铺

操作系统原理:How Linux Works(三):Memory

内存是计算机中与CPU进行沟通的桥梁,用于暂时存放CPU中的运算数据。Linux 内核的内存管理机制设计得非常精妙,对于 Linux 内核的性能有很大影响。在早...

24480
来自专栏流柯技术学院

Bug管理工具之Mantis_配置篇

角色 管理员、经理、开发人员、修改人员、报告人员、查看人员,权限从大到小递减。 分配:

33420
来自专栏互联网杂技

react+redux+webpack教程5

现在项目已经有了,但是要把它放到生产环境中还是有些事情要做,在这最后一节,来把它们一一搞定。 这一节其实更多是关于webpack的内容。不过要想把react用得...

357110

扫码关注云+社区

领取腾讯云代金券