些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开发分享社区》》

使用ASP.NET 4的自动启动特性,解决ASP.NET第一次访问速度慢问题的更多相关文章

  1. ASP.NET 预编译命令(解决发布后第一次访问慢问题)

    ASP.NET 编译工具 (Aspnet_compiler.exe) 官方说明 新建bat文件   @echo off   CD /d C:\Windows\Microsoft.NET\Framewo ...

  2. 解决iis+php+mysql访问速度慢的方法

    IIS7.5网站访问PHP响应慢的原因原因是PHP5.3以上支持IPv6协议,但是大家的服务器未使用IPv6,当访问PHP的时候会连接MySQL的地址为localhost,系统会会先用IPv6连接,但 ...

  3. 解决Sharepoint每天第一次打开速度慢的问题

    每天第一次打开Sharepoint的网站会非常慢,下面是解决这个问题的几个方法. 添加crl.microsoft.com到Hosts文件,IP地址指向服务器本机. 允许服务器直接连接到crl.micr ...

  4. ASP.NET MVC5(一):ASP.NET MVC概览

    ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. 1.ASP.NET MV ...

  5. ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上

    原文:ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上 ASP.NET MVC默认采用基于标准特性的Model验证机制,但是只有应用在Model ...

  6. ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则

    原文:ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则 对于Model验证,理想的设计应该是场景驱动的,而不是Model(类型)驱动的,也就是对于同一个Model对象, ...

  7. ASP.NET Core Identity 验证特性 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Identity 验证特性 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 验证特性 上一章节我们简单介绍了 ...

  8. 解决ASP.Net第一次访问慢的处理(IIS8)

    本篇经验以IIS8,Windows Server 2012R2做为案例. IIS8 运行在 Windows Server 2012 and Windows 8 版本以上的平台上. IIS中应用程序池和 ...

  9. JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法(转)

    原文:JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法 jquery-easyui是一个基于jquery的图形界面插件,利用easyui可以创建很多好看的网页界面 ...

随机推荐

  1. 在ThoughtWorks工作这几年我学到了什么?

    不知不觉,从2012年5月1日加入ThoughtWorks到现在,已经3年有余了.时间过得很快,这三年多我干了很多事情,但仔细想想也没有什么特别值得一提的.在一个公司呆久了总觉得很多事情是理所当然的, ...

  2. MyBatis学习总结(一)——MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  3. [CSS]复选框单选框与文字对齐问题的研究与解决.

    前言:今天碰到的这个问题, 恰好找到一个很好的博文, 在这里转载过来 学习下. 原文地址:复选框单选框与文字对齐问题的研究与解决. 目前中文网站上面的文字,就我的个人感觉而言,绝大多数网站的主流文字大 ...

  4. [Spring框架]Spring IOC的原理及详解。

    这里感谢 CSDN 的原博客:http://blog.csdn.net/m13666368773/article/details/7802126 看后  受益匪浅,这里再重温一遍Spring IOC ...

  5. [javaweb]Java过滤器与包装设计模式的实用案例.

    在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目 ...

  6. Atitit.java图片图像处理attilax总结  BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与

    Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...

  7. Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)

    Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编   ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...

  8. Web信息架构——设计大型网站(第3版)(久负盛名经典再现,信息架构设计领域基石之作!)

    Web信息架构——设计大型网站(第3版)(久负盛名经典再现,信息架构设计领域基石之作!) [美]]Peter Morville(彼得·莫维尔)  Louis Rosenfeld(路易斯·罗森菲尔德) ...

  9. SSIS Component的ValidateExternalMetadata属性

    ValidateExternalMetadata Property Indicates whether the component validates its column metadata agai ...

  10. transform你不知道的那些事

    transform是诸多css3新特性中最打动我的,因为它让方方正正的box module变得真实了. transform通过一组函数实现了对盒子大小.位置.角度的2D或者3D变换.不过很长时间内,我 ...