|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!明天的贴子会商一个你能够选择使用的ASP.NET4中小小的,但很棒的新特征,即,主动启动,先行初始化web使用,而不用守候内部客户端会见web服务器时才启动的才能。这能够有助于你给第一个会见者供应一个更快的复兴体验,制止撰写定制剧本来“预热(warmup)”服务器和筹办好任何数据缓存。它可用于任何范例的ASP.NET使用,包含基于ASP.NETWebForms和ASP.NETMVC的使用。
在ASP.NET4中主动启动Web使用
有些web使用在能够处置用户会见之前,必要装载良多的数据,或做一些消费很年夜的初始化处置。明天利用ASP.NET的开辟职员常常利用使用的Global.asax文件中的“Application_Start”事务处置函数来做这些事情(该事务是在第一个哀求实行时触发的)。他们要末计划定制剧本,周期性地向使用发假的哀求,来“叫醒它(wakeitup)”,从而在客户会见之前实行这个代码,大概就让那不幸的第一个会见者等着这个逻辑实行完才处置其哀求(这能够给这些用户形成很长的延宕)。
ASP.NET4中有一个叫“主动启动(auto-start)”的新特征,能够较好地办理这个场景,能够在IIS7.5(随Windows7和WindowsServer2008R2公布)上运转ASP.NET4时利用。这个主动启动特征供应了一个可把持的体例来启动一个使用事情历程,初始化ASP.NET使用,然后承受HTTP哀求。
将一个ASP.NET4使用设置成主动启动
要利用ASP.NET4主动启动特征,你起首设置IIS使用池事情历程,使在个中运转的使用在web服务器开始装载时即主动启动。设置办法是,翻开IIS7.5的applicationHost.config文件(C:WindowsSystem32inetsrvconfigapplicationHost.config),在符合的<applicationPools>中加一个startMode=”AlwaysRunning”属性:
<applicationPools>
<addname="MyAppWorkerProcess"managedRuntimeVersion="v4.0"startMode="AlwaysRunning"/>
</applicationPools>
假如你运转Windows义务办理器,点击“显现一切用户的历程”复选框,然后把applicationHost.config文件的startMode属性修改保留的话,在文件保留后的刹时就会看到一个新的“w3wp.exe”事情历程启动起来了。
一个单一IIS使用池事情历程能够宿主多个ASP.NET使用,你能够经由过程在对应使用的<application>中加一个serviceAutoStartEnabled="true"属性,来指定在事情历程装载时你想要哪些使用主动启动起来:
<sites>
<sitename="MySite"id="1">
<applicationpath="/"serviceAutoStartEnabled="true"serviceAutoStartProvider="PreWarmMyCache"/>
</site>
</sites>
<serviceAutoStartProviders>
<addname="PreWarmMyCache"type="PreWarmCache,MyAssembly"/>
</serviceAutoStartProviders>
下面的serviceAutoProvider="PreWarmMyCache"属性援用了config文件中的一个供应器(provider)设置,同意你设置一个自界说的类,该类用于封装使用的任何"预热(warmingup)"逻辑。这个类会在事情历程和使用预载时(在收就任何内部web哀求之前)主动被挪用,可用于实行想要在承受和处置哀求之前实行的任何初始化或缓存装载逻辑:
publicclassPreWarmCache:System.Web.Hosting.IProcessHostPreloadClient{
publicvoidPreload(string[]parameters){
//Performinitializationandcacheloadinglogichere...
}
}
IIS会将使用启动到如许一个形态,在这个形态中,它不克不及承受哀求,直到你的"预热(warmingup)"逻辑完成为止。在Preload办法中的初始化代码运转完前往以后,ASP.NET使用会被标志为可处置哀求了。
你也能够把新的主动启动"warmingup"特征与IIS7使用哀求导向(ApplicationRequestRouting,ARR)扩大的负载均衡功效分离起来,用它来在使用完成初始化,能够承受HTTP哀求以后,向负载均衡器发旌旗灯号,在这个时分,服务器能够放进webfarm来处置哀求。
停止语
ASP.NET4和IIS7.5的主动启动新特征供应了一个界说明白的体例,同意你在任何终端用户会见你的使用之前,运转消费年夜的使用启动和预缓存逻辑,这同意你一入手下手就将使用“预热(warmedup)”好,供应一个持之以恒的高功能体验。
但愿本文对你有所匡助,
有专家说:java不是跨平台,java就是平台,这很好的定义了java的特点。有了java,你只需要等待java平台在新平台上移植。这还不错吧!只是,java不是一个平台,而是多个平台。你需要在这个java平台移植到另一个java平台。 |
|