国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET4的自動啟動特性淺析

2024-07-10 12:47:43
字體:
來源:轉載
供稿:網友

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

在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請求之前)自動被調用,可用于執行想要在接受和處理請求之前執行的任何初始化或緩存裝載邏輯:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 池州市| 颍上县| 平武县| 文水县| 彭泽县| 赫章县| 赞皇县| 庆云县| 青龙| 阿鲁科尔沁旗| 辽阳市| 章丘市| 石狮市| 石河子市| 股票| 周至县| 鹿邑县| 南京市| 绥江县| 洪泽县| 岳阳县| 富川| 潜山县| 阿拉尔市| 清丰县| 新巴尔虎左旗| 高州市| 喀喇沁旗| 邹城市| 渝中区| 古蔺县| 潼关县| 堆龙德庆县| 大荔县| 大庆市| 广水市| 布拖县| 贡觉县| 永登县| 沂源县| 阜新市|