在細(xì)說(shuō)Asp.Net Web API消息處理管道這篇文章中,通過(guò)翻看源碼和實(shí)例驗(yàn)證的方式,我們知道了Asp.Net Web API消息處理管道的組成類型以及Asp.Net Web API是如何創(chuàng)建消息處理管道的。本文在上篇的基礎(chǔ)上進(jìn)行一個(gè)補(bǔ)充,談?wù)勗赪ebHost寄宿方式和SelfHost寄宿方式下,請(qǐng)求是如何進(jìn)入到Asp.Net Web API的消息處理管道的。
WebHost寄宿方式:
在剖析Asp.Net WebAPI路由系統(tǒng)一文中,我們知道Asp.Net Web API在WebHost寄宿方式下,最終把HttpControllerHandler類型作為請(qǐng)求的HttpHandler。而又由于Asp.Net Web API以WebHost方式寄宿時(shí),是利用Asp.Net環(huán)境里進(jìn)行請(qǐng)求的處理的。請(qǐng)求在Asp.Net管道事件流轉(zhuǎn)過(guò)程中,代表HttpHandler的HttpControllerHandler類型中的ProcessRequestAsync方法將被執(zhí)行,此方法正是Asp.Net Web API消息處理管道的入口,翻看源碼我們就可以驗(yàn)證: