本篇內(nèi)容主要講解“如何使用ASP.NET 4的自動啟動特性”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何使用ASP.NET 4的自動啟動特性”吧!
站在用戶的角度思考問題,與客戶深入溝通,找到蘆山網(wǎng)站設(shè)計(jì)與蘆山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋蘆山地區(qū)。
在ASP.NET 4中自動啟動Web應(yīng)用
有些web應(yīng)用在可以處理用戶訪問之前,需要裝載很多的數(shù)據(jù),或做一些花費(fèi)很大的初始化處理。今天使用 ASP.NET 的開發(fā)人員經(jīng)常使用應(yīng)用的Global.asax 文件中的 “Application_Start”事件處理函數(shù)來做這些工作(該事件是在***個(gè)請求執(zhí)行時(shí)觸發(fā)的)。他們要么設(shè)計(jì)定制腳本,周期性地向應(yīng)用發(fā)假的請求,來“喚醒它(wake it up)”,從而在客戶訪問之前執(zhí)行這個(gè)代碼,或者就讓那不幸的***個(gè)訪問者等著這個(gè)邏輯執(zhí)行完才處理其請求(這可以給這些用戶造成很長的耽擱)。
ASP.NET 4中有一個(gè)叫“自動啟動(auto-start)”的新特性,可以較好地解決這個(gè)場景, 可以在IIS 7.5(隨Windows 7和Windows Server 2008 R2發(fā)布)上運(yùn)行 ASP.NET 4時(shí)使用。這個(gè)自動啟動特性提供了一個(gè)可控制的方式來啟動一個(gè)應(yīng)用工作進(jìn)程,初始化ASP.NET 應(yīng)用,然后接受HTTP請求。
將一個(gè)ASP.NET 4應(yīng)用配置成自動啟動
要使用ASP.NET 4自動啟動特性,你首先配置IIS應(yīng)用池工作進(jìn)程,使在其中運(yùn)行的應(yīng)用在web服務(wù)器***裝載時(shí)即自動啟動。配置方法是,打開IIS 7.5的applicationHost.config文件(C:\Windows\System32\inetsrv\config\applicationHost.config),在合適的< applicationPools>中加一個(gè) startMode=”AlwaysRunning”屬性:
< applicationPools> < add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" /> < /applicationPools>
如果你運(yùn)行Windows任務(wù)管理器,點(diǎn)擊“顯示所有用戶的進(jìn)程”復(fù)選框,然后把a(bǔ)pplicationHost.config文件的startMode屬性改動保存的話,在文件保存后的瞬間就會看到一個(gè)新的“w3wp.exe” 工作進(jìn)程啟動起來了。
一個(gè)單一IIS應(yīng)用池工作進(jìn)程可以宿主多個(gè)ASP.NET 應(yīng)用,你可以通過在對應(yīng)應(yīng)用的 < application> 中加一個(gè)serviceAutoStartEnabled="true" 屬性,來指定在工作進(jìn)程裝載時(shí)你想要哪些應(yīng)用自動啟動起來:
< 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文件中的一個(gè)提供器(provider)配置,允許你配置一個(gè)自定義的類,該類用于封裝應(yīng)用的任何 "預(yù)熱(warming up)" 邏輯。這個(gè)類會在工作進(jìn)程和應(yīng)用預(yù)載時(shí)(在收到任何外部web請求之前)自動被調(diào)用,可用于執(zhí)行想要在接受和處理請求之前執(zhí)行的任何初始化或緩存裝載邏輯:
public class PreWarmCache : System.Web.Hosting.IProcessHostPreloadClient { public void Preload(string[] parameters) { // Perform initialization and cache loading logic here... } }
IIS會將應(yīng)用啟動到這樣一個(gè)狀態(tài),在這個(gè)狀態(tài)中,它不能接受請求,直到你的 "預(yù)熱(warming up)" 邏輯完成為止。在Preload方法中的初始化代碼運(yùn)行完返回之后,ASP.NET 應(yīng)用會被標(biāo)記為可處理請求了。
你也可以把新的自動啟動"warming up"特性與IIS7 應(yīng)用請求導(dǎo)向(Application Request Routing, ARR) 擴(kuò)展的負(fù)載平衡功能結(jié)合起來,用它來在應(yīng)用完成初始化,可以接受HTTP請求之后,向負(fù)載平衡器發(fā)信號,在這個(gè)時(shí)候,服務(wù)器可以放入web farm來處理請求。
到此,相信大家對“如何使用ASP.NET 4的自動啟動特性”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!