国产亚洲精品a在线看。,骚货想不想被艹,国产麻豆剧传媒兔子先生,好大好爽好想要被操视频


昂捷論壇≡零售最前線≡□-技術(shù)研討會 → VS 2010 和 .NET 4.0 之自動啟動ASP.NET應(yīng)用


  共有27334人關(guān)注過本帖樹形打印

主題:VS 2010 和 .NET 4.0 之自動啟動ASP.NET應(yīng)用

帥哥喲,離線,有人找我嗎?
飛絮
  1樓 個(gè)性首頁 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級:中校 帖子:594 積分:6649 威望:0 精華:56 注冊:2005/10/21 18:45:15
VS 2010 和 .NET 4.0 之自動啟動ASP.NET應(yīng)用  發(fā)帖心情 Post By:2009/9/29 10:26:43

  【IT168 技術(shù)】我們來討論一個(gè)你可以選擇利用的ASP.NET 4中小小的,但很棒的新特性,即,自動啟動,先行初始化web應(yīng)用,而不必等待外部客戶端訪問web服務(wù)器時(shí)才啟動的能力。這可以有助于你給第一個(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中自動啟動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),在合適的中加一個(gè) startMode=”AlwaysRunning”屬性:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><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)用的 中加一個(gè)serviceAutoStartEnabled="true" 屬性,來指定在工作進(jìn)程裝載時(shí)你想要哪些應(yīng)用自動啟動起來:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><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í)行的任何初始化或緩存裝載邏輯:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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來處理請求。

  結(jié)束語

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


使用IE9無法添加附件的解決方法 支持(0中立(0反對(0回到頂部
五河县| 肥城市| 晋城| 杭州市| 邳州市| 台州市| 左权县| 九龙坡区| 乌兰察布市| 寻乌县| 宝坻区| 长泰县| 九龙城区| 肥东县| 平舆县| 丹江口市| 绥德县| 正宁县| 土默特左旗| 高雄市| 洱源县| 青海省| 白朗县| 工布江达县| 秀山| 西城区| 越西县| 兖州市| 湖州市| 皋兰县| 奉节县| 吴桥县| 宝兴县| 盐城市| 肥乡县| 凤台县| 聂拉木县| 大连市| 广饶县| 郸城县| 临夏市|