网站建设业务怎么跑,wordpress文章加背景颜色,门户网站需求,深圳一定火网站建设前言 最近这段时间除了工作#xff0c;所有的时间都是在移植我以前实现的一个Owin框架#xff0c;相当移植到到Core的话肯定会有很多坑#xff0c;这个大家都懂#xff0c;以后几篇文章可能会围绕这个说下#xff0c;暂时就叫《Dotnet Core踩坑记》吧#xff0c;呵呵。 接… 前言 最近这段时间除了工作所有的时间都是在移植我以前实现的一个Owin框架相当移植到到Core的话肯定会有很多坑这个大家都懂以后几篇文章可能会围绕这个说下暂时就叫《Dotnet Core踩坑记》吧呵呵。 接下来我对我在移植过程中发现的一些问题进行了总结今天主要说说Owin。说到Owin就不能不提Katana项目和宇内大神的Tinyfox了当然关于这两块内容这篇文章就不多涉及了博友可以自己在博客园内搜索关于Owin的文章还是挺多的。 Owin ASP.NET vNext刚推出的时候号称是Owin的一个实现在 http://owin.org 上直到现在还保留着这样一段描述。 Implementations Katana Freya ASP.NET vNext 很多开发者纷纷实现着自己的Owin框架也写很多应用到了实际的生产环境中当然我也是其中一员。 ASP.NET Core 移植过程中会发现有很多的不同还有遇到新的API不知道怎么使用这时候看文档还不如直接看源码来的痛快。 在看完AspCore.Mvc后才发现一点关于Owin的内容都没有但很明显官方文档上说是支持Owin协议的后来我硬着头皮去看了看KestrelHttpServer和HttpAbstractions两个项目后来才发现原来真的没有一点点的Owin协议内容啊一定要给MS差评。 好吧只能看看MS是怎么支持Owin的在HttpAbstractions项目里发现了Microsoft.AspNetCore.Owin这样一个子项目看完只是想说“你这意思这叫向下兼容” 算了。 现在只要在Asp.net core项目里加入依赖Microsoft.AspNet.Owin就可以IApplicationBuilder接口的扩展方法UseOwin进行Owin中间件的调用。如下 添加依赖 dependencies: { Microsoft.AspNet.Server.Kestrel: 1.0.0-*, Microsoft.AspNet.Owin: 1.0.0-* }, 在Startup中加入UseOwin public void Configure(IApplicationBuilder app) { app.UseOwin(pipeline { pipeline(next OwinHello); }); } 当然OwinHello的内容一定是一个标准Owin中间件的内容了 Kestrel 既然新的服务器已经不在支持Owin协议了那个是怎么通信的 这个问题在ASP.NET Core管道深度剖析系列文章中被提到过一些其实每一个HttpContext在被创建出来都会依赖一个IFeatureCollection集合。 IFeatureCollection这个接口用于描述某个对象所具有的一组特征由一组Feature接口组成。 列出其中一个IHttpConnectionFeature接口用于获得Http的连接信息 阅读kestrel源码发现每一次接受tcp连接都会将Http流封装在一个帧Frame它被描述成一个单向或双向的request和response。 并组装成特征集合供上层应用进行使用。 最后 最后就发一段Owin字典对应Feature的源码吧 只能说还好性能并没有太多的损耗粘的不全全的自己看吧 : ) 当然MS这样做也是有用意义的他们不太喜欢字典的方式于是用Feature这种方式将这些内容,强类型化了。这对于底层的Server来说很快能基于这组特征二次开发出一套中间件来支持ASP.NET Core当然直接在Server内实现这样性能也会更高。 只能说API变化有点快吧但是对于开源看几天源码就全明白了这对于我们dotnet开发者来说真是大大的好事儿。 原文地址http://www.cnblogs.com/maxzhang1985/p/5553335.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注