偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談ASP.NET應(yīng)用

開發(fā) 后端
本文介紹ASP.NET應(yīng)用,創(chuàng)建一個(gè)HttpApplication對(duì)象池并為每個(gè)請(qǐng)求分發(fā)HttpApplication對(duì)象的引用。

當(dāng)一個(gè)請(qǐng)求到來時(shí),它被路由到ISAPIRuntime.ProcessRequest() 方法.這個(gè)方法調(diào)用HttpRuntime.ProcessRequest方法,它作一些重要的事情(用Reflector查看 System.Web.HttpRuntime.ProcessRequestInternal方法):
◆為請(qǐng)求創(chuàng)建一個(gè)新的HttpContext實(shí)例
◆獲取一個(gè)HttpApplication實(shí)例
◆調(diào)用HttpApplication.Init()方法來設(shè)置管道的事件
◆Init()方法觸發(fā)開始ASP.NET管道處理的HttpApplication.ResumeProcessing()方法。

介紹ASP.NET應(yīng)用,首先一個(gè)新的HttpContext對(duì)象被創(chuàng)建并用來傳遞ISAPIWorkerRequest(ISAPI ECB的包裝器).這個(gè)上下文在整個(gè)請(qǐng)求的生命周期總都是可用的并總可以通過靜態(tài)屬性HttpContext.Currect來訪問.正像名字所暗示的那樣,HttpContext對(duì)象代表了當(dāng)前活動(dòng)請(qǐng)求的上下文因?yàn)樗嗽谡?qǐng)求生命周期中所有典型的你需要訪問的重要對(duì)象:Request,Response,Application,Server,Cache.在請(qǐng)求處理的任何時(shí)候 HttpContext.Current給你訪問所有這些的能力.

HttpContext對(duì)象也包含一個(gè)非常有用的Items集合,你可以用它來保存針對(duì)特定請(qǐng)求的數(shù)據(jù).上下文對(duì)象在請(qǐng)求周期的開始時(shí)被創(chuàng)建,在請(qǐng)求結(jié)束時(shí)被釋放,所有在Items集合中保存的數(shù)據(jù)只在這個(gè)特定的請(qǐng)求中可用.一個(gè)很好的使用的例子是請(qǐng)求日志機(jī)制,當(dāng)你通過想通過在 Global.asax中掛接Application_BeginRequest和Application_EndRequest方法記錄請(qǐng)求的開始和結(jié)束時(shí)間(象在列表3中顯示的那樣).HttpContext對(duì)你就非常有用了-如果你在請(qǐng)求或頁面處理的不同部分需要數(shù)據(jù),你自由的使用它.

 

  1. protected void Application_BeginRequest(Object sender, EventArgs e)  
  2. {  
  3. //*** Request Logging  
  4. if (App.Configuration.LogWebRequests)  
  5. Context.Items.Add("WebLog_StartTime",DateTime.Now);  
  6. }  
  7.  
  8. protected void Application_EndRequest(Object sender, EventArgs e)  
  9. {  
  10. // *** Request Logging  
  11. if (App.Configuration.LogWebRequests)  
  12. {  
  13. try  
  14. {  
  15. TimeSpan Span = DateTime.Now.Subtract( (DateTime) Context.Items["WebLog_StartTime"] );  
  16. int MiliSecs = Span.TotalMilliseconds;  
  17. // do your logging  
  18. WebRequestLog.Log(App.Configuration.ConnectionString,true,MilliSecs);  
  19. }  
  20. }  


一旦上下文被設(shè)置好,ASP.NET需要通過HttpApplication對(duì)象將收到的請(qǐng)求路由到適合的應(yīng)用程序/虛擬目錄.每個(gè)ASP.NET應(yīng)用程序必須被設(shè)置到一個(gè)虛擬目錄(或者Web根目錄)而且每個(gè)”應(yīng)用程序”是被單獨(dú)的處理的。

HttpApplication類似儀式的主人-它是處理動(dòng)作開始的地方。

域的主人:HttpApplication

每個(gè)請(qǐng)求都被路由到一個(gè)HttpApplication對(duì)象上.HttpApplicationFactory類根據(jù)應(yīng)用程序的負(fù)載為你的 ASP.NET應(yīng)用創(chuàng)建一個(gè)HttpApplication對(duì)象池并為每個(gè)請(qǐng)求分發(fā)HttpApplication對(duì)象的引用.對(duì)象池的大小受 machine.config文件中ProcessModel鍵中的MaxWorkerThreads設(shè)置限制,默認(rèn)是20個(gè)(譯注:此處可能有誤,根據(jù) Reflector反編譯的代碼,池的大小應(yīng)該是100個(gè),如果池大小小于100,HttpApplicationFactory會(huì)創(chuàng)建滿100個(gè),但是考慮到會(huì)有多個(gè)線程同時(shí)創(chuàng)建HttpApplication的情況,實(shí)際情況下有可能會(huì)超過100個(gè))。

【編輯推薦】

  1. ASP.NET中的HttpWorkerRequest對(duì)像
  2. 詳解四個(gè)ASP.NET狀態(tài)
  3. ASP.NET AJAX中ScriptManager控件
  4. SuperPreview會(huì)調(diào)用ASP.NET或者PHP來渲染網(wǎng)頁
  5. ASP.NET中的ScriptManager控件
責(zé)任編輯:佚名 來源: 清華大學(xué)出版社
相關(guān)推薦

2009-07-21 15:02:19

ASP.NET應(yīng)用程序

2009-07-24 10:52:42

ASP.NET ISA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-28 17:49:30

ASP.NET定期回收

2009-07-22 13:24:24

ASP.NET MVC

2009-08-10 10:19:47

ASP.NET組件設(shè)計(jì)

2009-07-23 15:44:39

ASP.NET MVC

2009-07-20 17:12:17

ASP.NET訪問數(shù)據(jù)

2009-08-05 15:29:33

ASP.NET For

2009-07-28 16:03:23

ASP.NET狀態(tài)服務(wù)

2009-07-21 14:16:02

ASP.NET管道優(yōu)化

2011-08-23 10:58:59

2009-07-23 15:24:37

ASP.NET Ima

2009-07-27 16:19:59

ASP.NET報(bào)表控件

2009-07-28 17:34:28

ASP.NET XML

2009-07-27 13:01:28

TreeViewASP.NET

2009-08-19 10:54:42

ASP.NET數(shù)據(jù)訪問

2011-06-08 11:36:16

ASP.NETrender

2009-07-29 09:38:06

Web開發(fā)ASP.NET

2009-07-22 17:21:27

ASP.NET 2.0
點(diǎn)贊
收藏

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