麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > .NET > 正文

ASP.NET4的自動(dòng)啟動(dòng)特性淺析

2024-07-10 13:29:33
字體:
供稿:網(wǎng)友

本篇文章討論一個(gè)你可以選擇利用的ASP.NET4中小小的,但很棒的新特性,即自動(dòng)啟動(dòng),需要的朋友可以參考下

自動(dòng)啟動(dòng),先行初始化web應(yīng)用,而不必等待外部客戶端訪問web服務(wù)器時(shí)才啟動(dòng)的能力。這可以有助于你給第一個(gè)訪問者提供一個(gè)更快的回復(fù)體驗(yàn),避免撰寫定制腳本來“預(yù)熱(warm up)”服務(wù)器和準(zhǔn)備好任何數(shù)據(jù)緩存。它可用于任何類型的ASP.NET應(yīng)用,包括基于ASP.NET Web Forms和ASP.NET MVC的應(yīng)用。

在ASP.NET 4中自動(dòng)啟動(dòng)Web應(yīng)用

有些web應(yīng)用在可以處理用戶訪問之前,需要裝載很多的數(shù)據(jù),或做一些花費(fèi)很大的初始化處理。今天使用 ASP.NET 的開發(fā)人員經(jīng)常使用應(yīng)用的Global.asax 文件中的 “Application_Start”事件處理函數(shù)來做這些工作(該事件是在第一個(gè)請(qǐng)求執(zhí)行時(shí)觸發(fā)的)。他們要么設(shè)計(jì)定制腳本,周期性地向應(yīng)用發(fā)假的請(qǐng)求,來“喚醒它(wake it up)”,從而在客戶訪問之前執(zhí)行這個(gè)代碼,或者就讓那不幸的第一個(gè)訪問者等著這個(gè)邏輯執(zhí)行完才處理其請(qǐng)求(這可以給這些用戶造成很長(zhǎng)的耽擱)。

ASP.NET 4中有一個(gè)叫“自動(dòng)啟動(dòng)(auto-start)”的新特性,可以較好地解決這個(gè)場(chǎng)景, 可以在IIS 7.5(隨Windows 7和Windows Server 2008 R2發(fā)布)上運(yùn)行 ASP.NET 4時(shí)使用。這個(gè)自動(dòng)啟動(dòng)特性提供了一個(gè)可控制的方式來啟動(dòng)一個(gè)應(yīng)用工作進(jìn)程,初始化ASP.NET 應(yīng)用,然后接受HTTP請(qǐng)求。

將一個(gè)ASP.NET 4應(yīng)用配置成自動(dòng)啟動(dòng)

要使用ASP.NET 4自動(dòng)啟動(dòng)特性,你首先配置IIS應(yīng)用池工作進(jìn)程,使在其中運(yùn)行的應(yīng)用在web服務(wù)器最先裝載時(shí)即自動(dòng)啟動(dòng)。配置方法是,打開IIS 7.5的applicationHost.config文件(C:/Windows/System32/inetsrv/config/applicationHost.config),在合適的< applicationPools>中加一個(gè) startMode=”AlwaysRunning”屬性:

 

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

如果你運(yùn)行Windows任務(wù)管理器,點(diǎn)擊“顯示所有用戶的進(jìn)程”復(fù)選框,然后把a(bǔ)pplicationHost.config文件的startMode屬性改動(dòng)保存的話,在文件保存后的瞬間就會(huì)看到一個(gè)新的“w3wp.exe” 工作進(jìn)程啟動(dòng)起來了。

一個(gè)單一IIS應(yīng)用池工作進(jìn)程可以宿主多個(gè)ASP.NET 應(yīng)用,你可以通過在對(duì)應(yīng)應(yīng)用的 < application> 中加一個(gè)serviceAutoStartEnabled="true" 屬性,來指定在工作進(jìn)程裝載時(shí)你想要哪些應(yīng)用自動(dòng)啟動(dòng)起來:

 

 
  1. < sites>  
  2. < site name="MySite" id="1">  
  3. < application path="/" serviceAutoStartEnabled="true" serviceAutoStartProvider="PreWarmMyCache" />  
  4. < /site>  
  5. < /sites>  
  6. < serviceAutoStartProviders>  
  7. < add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" />  
  8. < /serviceAutoStartProviders>  

serviceAutoProvider="PreWarmMyCache"

上面的屬性引用了config文件中的一個(gè)提供器(provider)配置,允許你配置一個(gè)自定義的類,該類用于封裝應(yīng)用的任何 "預(yù)熱(warming up)" 邏輯。這個(gè)類會(huì)在工作進(jìn)程和應(yīng)用預(yù)載時(shí)(在收到任何外部web請(qǐng)求之前)自動(dòng)被調(diào)用,可用于執(zhí)行想要在接受和處理請(qǐng)求之前執(zhí)行的任何初始化或緩存裝載邏輯:

 

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

IIS會(huì)將應(yīng)用啟動(dòng)到這樣一個(gè)狀態(tài),在這個(gè)狀態(tài)中,它不能接受請(qǐng)求,直到你的 "預(yù)熱(warming up)" 邏輯完成為止。在Preload方法中的初始化代碼運(yùn)行完返回之后,ASP.NET 應(yīng)用會(huì)被標(biāo)記為可處理請(qǐng)求了。

你也可以把新的自動(dòng)啟動(dòng)"warming up"特性與IIS7 應(yīng)用請(qǐng)求導(dǎo)向(Application Request Routing, ARR) 擴(kuò)展的負(fù)載平衡功能結(jié)合起來,用它來在應(yīng)用完成初始化,可以接受HTTP請(qǐng)求之后,向負(fù)載平衡器發(fā)信號(hào),在這個(gè)時(shí)候,服務(wù)器可以放入web farm來處理請(qǐng)求。

結(jié)束語(yǔ)

ASP.NET 4 和 IIS 7.5的自動(dòng)啟動(dòng)新特性提供了一個(gè)定義明確的方式,允許你在任何終端用戶訪問你的應(yīng)用之前,運(yùn)行花費(fèi)大的應(yīng)用啟動(dòng)和預(yù)緩存邏輯,這允許你一開始就將應(yīng)用“預(yù)熱(warmed up)”好,提供一個(gè)始終如一的高性能體驗(yàn)。

希望本文對(duì)你有所幫助,對(duì)自動(dòng)啟動(dòng)特性有更深入的了解。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天堂成人国产精品一区 | 天天草天天干天天射 | 久久6国产| 国产一区二区不卡 | 日韩毛片一区二区三区 | 黄色大片网站在线观看 | 日本中文字幕久久 | 特级毛片a级毛片100免费 | 日本a在线观看 | 午夜神马福利视频 | 欧美色爱综合 | 国产午夜精品一区二区三区四区 | 国产无遮挡一级毛片 | 欧美在线成人影院 | 日本va在线观看 | 黄色电影免费提供 | 午夜视频在线观看91 | 日本欧美一区二区三区视频麻豆 | 99精品视频在线看 | xxxx hd video 69| 色999久久久精品人人澡69 | 亚洲国产精品一区二区精品 | 国产大片在线观看 | 国产妇女乱码一区二区三区 | av免费片| 成人一级毛片 | 美女污污视频在线观看 | 中文欧美日韩 | 亚洲网站免费观看 | h色网站免费观看 | 色爱99 | 婷婷中文字幕一区二区三区 | 久久人人爽人人爽人人片av高清 | 一区二区三区在线视频观看58 | h视频在线免费观看 | av电影免费观看 | 精品国内视频 | 免费永久看羞羞片网站入口 | 久久久噜噜噜久久熟有声小说 | 毛片成人网 | 成人毛片免费看 |