Owin webApi合作

Web server 服务器主要是指像IIS这样一类的,用于处理request并返回response的工具.

一般我们ASP.NET网站开发时所指的web server就是IIS了,但是还有一些开源的像Apache,Lighttpd, Nginx等在php和java领域以及开源社区都有很大的名声,并且Apache才是被使用最多的web server(大概占60%左右的市场)

类库介绍

  • HttpListener: http协议监听器。
  • HttpListenerContext:包含resquest 和 response信息的一个上下文对象。
  • HttpListenerRequest:包含请求信息,头,体等。
  • HttpListenerResponse:包含响应信息,头,体等。

  我们今天就主要借助以上4个类来帮助实现我们的web server,这4个类都是包含在System.Net命名空间下.

 当然.NET Framework 2-3年更新一次并没有什么错,因为毕竟它是非常底层的东西,必须保证它的稳定性的健壮性。

现在的Web API就已经完全摆脱了对System.Web的依懒,所以Web API是用Nuget来发布版本的,.NET Framework 10年多的时间才到4.5,而Web API不到两年的时间已经接近了12个release 现在是 2.1 。 这也使得Web API能够更好的拥抱变化,更快的响应开发者以及开源社区的需求,当然Web API本身也是开源的。

还有一个问题是,所有的这些东西全部放在System.Web中,随着时间的推移,这个dll就会越来越大,越来越复杂。

Owin 出现:

OWin环境变量都包含哪些?

  首先,环境变量是可以在生一个处理结点的时候随意添加的。其次OWin有定义一些必须的环境变量,因为没有这些是不能构成一个完整的Request的。

Microsoft.Owin.Host.SystemWeb

  这个dll可以让OWin接管IIS的请求,虽然同样是托管在IIS,但是所有的请求都会被OWin来处理。在OWin的4层结构中(Applicaton->Middleware->Server->Host),Microsoft.Owin.Host.SystemWeb属于Server层,还有一个同样也在Server层的是Microsoft.Owin.Host.HttpListener,这个可以实现利用控制台程序现实自托管,就可以完全摆脱IIS了。

Startup配置类

  要使用Owin的应用程序都要有一个叫Startup的类,在这个类里面有一个Configuration的方法,这两个名字是默认约定,必须用同样的名字才会被Owin找到。你也可以用Attribute和在web.config文件中配置的方式来定义这个类,详情见Startup。我们在Configuration方法里面,就可以定义我们自己的管道了。我们可以通过Use来添加自己的管道的处理步骤,并且可以自己设置处理顺序。

public void Configuration(IAppBuilder app)
{
    app.Use(async (context, next) =>
    {
        await context.Response.WriteAsync(" Authentication... ");
        await next();
    });
 
    app.Use(async (context, next) =>
    {
        await context.Response.WriteAsync("Authorization... ");
        await next();
    });
 
    app.Use(async (context, next) =>
    {
        context.Response.ContentType = "text/plain";
        await context.Response.WriteAsync("Hello World!");
    });
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值