ASP.NET WebAPI有兩種寄宿模式,一種是WebHost,一種是SelfHost,為什么可以有兩種模式的原因在于WebAPI有一個相對獨立的訊息處理管道,只要給這個訊息管道傳遞一個封裝好的物件,便可以得到處理好的結果,而怎么去封裝這個物件,如何得到這個物件就不是WebAPI所關心的了,在WebHost模式下,這個物件是由IIS+ASP.NET框架共同完成的,在SelfHost模式下,可以是任何可以完成HTTP訊息回應和接收的應用程式,比如Console、Winform、Windows Server等,宿主只需要完成HTTP訊息的接受和回應,處理程序交給WebAPI即可,我們先來看下在WebHost模式下一個HTTP報文的大概處理程序,首先有個總體把握,然后再按需去學習是個不錯的學習方法,

首先客戶端發出一個HTTP請求形成HTTP請求報文被IIS捕捉,IIS決議原始報文并作出相應處理,比如,如果請求的是一些靜態資源(*.CSS、*.Html……),此時IIS可以直接回傳相應資源給客戶端,當然如果需要托管代碼處理也是可以的,配置Web.config即可,如果IIS不處理,或者需要進一步處理,則交由ASP.NET托管代碼處理,在這個處理程序中,可以自定義一些HttpModule,并在Web.confg的System.WebServer(IIS模式在集成模式下才有效)注冊,怎么自定義后面會說明,最后由IIS生成HTTP回應報文給客戶端,在WebHost模式下,一次HTTP請求的大概程序就這樣結束了,
第二篇(HttpModule的創建和使用)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/18.html
標籤:ASP.NET
