成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 后端
本篇文章討論一個你可以選擇利用的ASP.NET 4中小小的,但很棒的新特性,即自動啟動。有些web應(yīng)用在可以處理用戶訪問之前,需要裝載很多的數(shù)據(jù),或做一些花費很大的初始化處理。用自動啟動會很方便。

微軟.NET平臺主管Scott Gu的Visual Studio 2010和.NET 4.0教程系列仍在繼續(xù),我們現(xiàn)在已經(jīng)進入到第七篇。今天,Scott Gu將談?wù)勑碌倪\行時特性。前面幾篇可參考:

***篇 第二篇 第三篇 第四篇 第五篇 第六篇

我想換一下討論的主題,從討論新的VS 2010工具特性,轉(zhuǎn)而寫幾個貼子討論幾個新的運行時特性(別擔(dān)心,我還會轉(zhuǎn)回來討論更多VS特性的,我只是想混合一下)。

今天的貼子討論一個你可以選擇利用的ASP.NET 4中小小的,但很棒的新特性,即,自動啟動,先行初始化web應(yīng)用,而不必等待外部客戶端訪問web服務(wù)器時才啟動的能力。這可以有助于你給***個訪問者提供一個更快的回復(fù)體驗,避免撰寫定制腳本來“預(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ù),或做一些花費很大的初始化處理。今天使用 ASP.NET 的開發(fā)人員經(jīng)常使用應(yīng)用的Global.asax 文件中的 “Application_Start”事件處理函數(shù)來做這些工作(該事件是在***個請求執(zhí)行時觸發(fā)的)。他們要么設(shè)計定制腳本,周期性地向應(yīng)用發(fā)假的請求,來“喚醒它(wake it up)”,從而在客戶訪問之前執(zhí)行這個代碼,或者就讓那不幸的***個訪問者等著這個邏輯執(zhí)行完才處理其請求(這可以給這些用戶造成很長的耽擱)。

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

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

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

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

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

一個單一IIS應(yīng)用池工作進程可以宿主多個ASP.NET 應(yīng)用,你可以通過在對應(yīng)應(yīng)用的 < application> 中加一個serviceAutoStartEnabled="true" 屬性,來指定在工作進程裝載時你想要哪些應(yī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文件中的一個提供器(provider)配置,允許你配置一個自定義的類,該類用于封裝應(yīng)用的任何 "預(yù)熱(warming up)" 邏輯。這個類會在工作進程和應(yīng)用預(yù)載時(在收到任何外部web請求之前)自動被調(diào)用,可用于執(zhí)行想要在接受和處理請求之前執(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會將應(yīng)用啟動到這樣一個狀態(tài),在這個狀態(tài)中,它不能接受請求,直到你的 "預(yù)熱(warming up)" 邏輯完成為止。在Preload方法中的初始化代碼運行完返回之后,ASP.NET 應(yīng)用會被標(biāo)記為可處理請求了。

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

結(jié)束語

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

希望本文對你有所幫助,

Scott

【編輯推薦】

  1. Visual Studio 2010中的代碼片段支持
  2. Visual Studio 2010并行編程及調(diào)試診斷功能詳解
  3. 圖解VS 2010與.NET 4.0多顯示器支持
  4. VS 2010和.NET 4的多定向支持
  5. 圖解VS 2010和.NET 4起始項目模板
責(zé)任編輯:yangsai 來源: Scott Gu博客中文版
相關(guān)推薦

2009-07-30 15:17:16

ASP.NET 2.0

2009-07-22 16:34:36

使用T4ASP.NET MVC

2009-07-30 14:55:43

ASP.NET 2.0

2009-09-04 16:28:05

ASP.NET 4.0

2021-01-04 05:44:54

框架日志

2010-01-08 11:04:06

ASP.NET 4SEO

2009-07-30 15:39:55

ASP.NET 2.0

2010-03-25 08:46:16

ASP.NET 4 B

2009-07-24 15:35:00

ASP.NET Gri

2009-07-29 14:12:45

ASP.NET tra

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 10:07:20

ASP.NET Ses

2009-08-10 14:55:43

ASP.NET htt

2009-08-05 17:58:34

實現(xiàn)ASP.NET網(wǎng)站

2010-12-07 09:38:15

ASP.NET MVC

2010-02-03 09:50:58

ASP.NET MVC

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2011-01-15 23:07:59

2009-07-27 09:45:14

ASP.NET Dro
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲国产欧美日韩 | 欧洲一区在线观看 | 国产福利小视频 | 精品一区二区三区四区外站 | 啪啪毛片| 成人午夜网 | 精品动漫一区 | 97热在线 | 黄色网一级片 | 欧美日韩视频在线播放 | 国产欧美性成人精品午夜 | 一区二区三区四区在线视频 | 亚洲人成在线观看 | 久久成人一区二区三区 | 久久久久久九九九九九九 | 狠狠干综合视频 | 国产亚洲精品区 | 人人做人人澡人人爽欧美 | 久久最新精品 | 日韩一区二区三区视频在线播放 | www.国产精| 网色 | 成人网av| 精品国产一区二区三区久久久蜜月 | 久久国产视频网站 | 亚洲一区二区视频在线播放 | 天天射天天干 | 99久久久无码国产精品 | 亚洲综合伊人 | www.v888av.com| 黄色精品| 久久综合伊人 | 国产一级片免费看 | 中文字幕精品一区二区三区精品 | 亚洲国产成人精品女人久久久野战 | 激情一区二区三区 | 先锋影音资源网站 | 国产精品美女www爽爽爽 | 91 在线| 国产精品久久久久久久久免费丝袜 | 国产亚洲精品久久久优势 |