千家信息网

如何使用ASP.NET 4的自动启动特性

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"如何使用ASP.NET 4的自动启动特性",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用ASP.NET 4的自动启动特性"吧!在A
千家信息网最后更新 2026年11月02日如何使用ASP.NET 4的自动启动特性

本篇内容主要讲解"如何使用ASP.NET 4的自动启动特性",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用ASP.NET 4的自动启动特性"吧!

在ASP.NET 4中自动启动Web应用

有些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服务器***装载时即自动启动。配置方法是,打开IIS 7.5的applicationHost.config文件(C:\Windows\System32\inetsrv\config\applicationHost.config),在合适的< applicationPools>中加一个 startMode="AlwaysRunning"属性:

< applicationPools>        < add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />   < /applicationPools>

如果你运行Windows任务管理器,点击"显示所有用户的进程"复选框,然后把applicationHost.config文件的startMode属性改动保存的话,在文件保存后的瞬间就会看到一个新的"w3wp.exe" 工作进程启动起来了。

一个单一IIS应用池工作进程可以宿主多个ASP.NET 应用,你可以通过在对应应用的 < application> 中加一个serviceAutoStartEnabled="true" 属性,来指定在工作进程装载时你想要哪些应用自动启动起来:

< sites>        < site name="MySite" id="1">             < application path="/" serviceAutoStartEnabled="true" serviceAutoStartProvider="PreWarmMyCache" />      < /site>   < /sites> < serviceAutoStartProviders>        < add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" />   < /serviceAutoStartProviders>

上面的serviceAutoProvider="PreWarmMyCache" 属性引用了config文件中的一个提供器(provider)配置,允许你配置一个自定义的类,该类用于封装应用的任何 "预热(warming up)" 逻辑。这个类会在工作进程和应用预载时(在收到任何外部web请求之前)自动被调用,可用于执行想要在接受和处理请求之前执行的任何初始化或缓存装载逻辑:

public class PreWarmCache : System.Web.Hosting.IProcessHostPreloadClient {      public void Preload(string[] parameters) {           // Perform initialization and cache loading logic here...       }   }

IIS会将应用启动到这样一个状态,在这个状态中,它不能接受请求,直到你的 "预热(warming up)" 逻辑完成为止。在Preload方法中的初始化代码运行完返回之后,ASP.NET 应用会被标记为可处理请求了。

你也可以把新的自动启动"warming up"特性与IIS7 应用请求导向(Application Request Routing, ARR) 扩展的负载平衡功能结合起来,用它来在应用完成初始化,可以接受HTTP请求之后,向负载平衡器发信号,在这个时候,服务器可以放入web farm来处理请求。

到此,相信大家对"如何使用ASP.NET 4的自动启动特性"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

应用 特性 进程 工作 处理 文件 配置 属性 逻辑 装载 运行 方法 用户 事件 代码 内容 服务器 状态 中加 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 互联网科技图片 互联网佳科技有限公司 金诺互联网科技 互联网公司 科技公司 为想互联网科技 互联网科技缩写 万达互联网科技 中盈科技互联网信息有限公司 996高科技互联网公司 互联网方面的科技前沿 2021互联网科技公司排名 互联网企业科技类企业如何做账 四川互联网展示科技馆设计 有人说阿里系是互联网科技企业 山东大美朱楼互联网科技有限公司 济南小医互联网科技有限公司招聘 福建互联网展示科技馆设计 银川新华互联网科技学校是国营吗 科技互联网专业工作会议发言稿 广东猪兼强互联网科技有限公司 广州万易互联网科技有限公司 互联网科技财经 互联网科技咨询 镁科技互联网资讯平台 科技与互联网的利与弊 山东子淼互联网科技有限公司 江苏苏星互联网科技有限公司 互联网金融运营模式中的金融科技 恒生科技互联网指数十大成分股
0