一、概述
- asp.net webapi采用的抽象管道处理模型
- 只具备处理消息的能力,需要寄宿于IIS或者控制台应用程序中,利用宿主环境下的监听与响应请求的功能完成一次完整的Http请求响应过程
- 提供了默认的路由系统实现
一、路由注册
- Web Host模式
- 当webapi寄宿在web host中时,其本质是对webapi默认的路由系统进行了拓展和适配,使其能够利用asp.net的路由系统进行注册(或者说是兼容),同时指定自身的IHttpHandler,使其利用webapi中的消息管道模型
- Self Host模式
- 当webapi寄宿在Self Host中时,可以运行在控制台应用程序中,其监听和响应功能是基于HttpBinding,包括两个主要的模块,即消息编解码以及面向传输层的监听响应
三、针对特定路由的HttpMessageHandler
- 在注册路由的时候,可以为特定的路由模板指定特定的HttpMessageHandler
- 该HttpMessageHandler后面的委托链最终可以指向HttpControllerDispatcher,通过激活controller的方式处理请求,也可以不指向HttpControllerDispatcher,自定义一套处理机制
四、Self Host模式
class Program
{
static void Main(string[] args)
{
HttpSelfHostConfiguration configuration = new HttpSelfHostConfiguration("http://localhost:8888");
using (HttpSelfHostServer httpServer = new HttpSelfHostServer(configuration))
{
WebApiConfig.Register(configuration);
httpServer.OpenAsync().Wait();
Console.Read();
}
}
}