溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用ASP.NET 4的自動啟動特性

發(fā)布時間:2021-09-14 14:58:57 來源:億速云 閱讀:104 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“如何使用ASP.NET 4的自動啟動特性”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何使用ASP.NET 4的自動啟動特性”吧!

在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ù)來做這些工作(該事件是在***個請求執(zhí)行時觸發(fā)的)。他們要么設(shè)計(jì)定制腳本,周期性地向應(yīng)用發(fā)假的請求,來“喚醒它(wake it up)”,從而在客戶訪問之前執(zhí)行這個代碼,或者就讓那不幸的***個訪問者等著這個邏輯執(zhí)行完才處理其請求(這可以給這些用戶造成很長的耽擱)。

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

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

要使用ASP.NET 4自動啟動特性,你首先配置IIS應(yīng)用池工作進(jìn)程,使在其中運(yùn)行的應(yīng)用在web服務(wù)器***裝載時即自動啟動。配置方法是,打開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>

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

一個單一IIS應(yīng)用池工作進(jìn)程可以宿主多個ASP.NET 應(yīng)用,你可以通過在對應(yīng)應(yīng)用的 < application> 中加一個serviceAutoStartEnabled="true" 屬性,來指定在工作進(jìn)程裝載時你想要哪些應(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文件中的一個提供器(provider)配置,允許你配置一個自定義的類,該類用于封裝應(yīng)用的任何 "預(yù)熱(warming up)" 邏輯。這個類會在工作進(jìn)程和應(yīng)用預(yù)載時(在收到任何外部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)用啟動到這樣一個狀態(tài),在這個狀態(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ā)信號,在這個時候,服務(wù)器可以放入web farm來處理請求。

到此,相信大家對“如何使用ASP.NET 4的自動啟動特性”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI