博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OWin
阅读量:6417 次
发布时间:2019-06-23

本文共 1831 字,大约阅读时间需要 6 分钟。

什么是 OWIN ?

   的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口, 其目的是为了实现服务器与应用之间的解耦, 鼓励为 .NET Web 应用开发简单模块。Owin将web服务器从web应用程序中抽象出来,所以还需要选择一种方式将应用程序链接到选择的Web服务器。

  OWIN 是一个开源开放的标准, 有助于建设 .NET 开发的开源生态环境,OWIN 定义了如下几个概念:

  • 服务器 (Server)

    HTTP 服务器直接与客户端交互, 并用 OWIN 语义处理请求,服务器需要一个适配层将客户请求转换 成 OWIN 语义。 支持 OWIN 的服务器有  和  。

  • Web 框架 (Web Framework)

    构建在 OWIN 之上的自包含的独立组件, 向 Web 应用提供可用的对象模型或者接口。 Web 框架可 能需要一个适配层来转换 OWIN 语义。 支持 OWIN 的 Web 框架有:

  • Web 应用 (Web Application)

    一个特定的 Web 应用, 通常构建在 Web 框架之上, 使用 OWIN 兼容的服务器运行。

  • 中间件 (Middleware)

    特定目的的服务器和应用之间的可插拔组件, 可以监视、 路由、 修改请求与响应。

  • 宿主 (Host)

    应用与服务器所在的进程, 主要负责应用的启动, 有些服务器自身也是宿主, 比如 Nowin 。

  为什么使用 OWIN

  正如上面所说, OWIN 定义了 .NET Web 服务器与 .NET Web 应用之间的标准接口, 将应用与服务器 解耦, 使得便携式 .NET Web 应用以及跨平台的愿望成为现实, 标准的 OWIN 应用可以在任何 OWIN 兼容的服务器上运行, 不再依赖与 Windows 和 IIS 。

 

创建一个控制台程序

新建一个Startup类

需要通过nuget安装 Microsoft.AspNet.WebApi.OwinSelfHost

public class Startup    {       public void Configuration(IAppBuilder appBuilder)       {            //创建一个HTTP的实例配置            HttpConfiguration config =new HttpConfiguration();            //映射路由            config.Routes.MapHttpRoute(               name: "Defaultapi",               routeTemplate: "api/{controller}/{id}",               defaults: new {id = RouteParameter.Optional}               );            //将配置注入OWIN管道中            appBuilder.UseWebApi(config);        }    }
class Program    {        static void Main(string[] args)        {            string addressUrl = "Http://localhost:8880/";            WebApp.Start
(url: addressUrl); Console.WriteLine("程序已启动,按任意键退出"); Console.ReadLine(); } }
创建一个api控制器   public class BlogController: ApiController    {       public string GetName()       {           return "东升,你好";       }    }

 

转载于:https://www.cnblogs.com/xiaoyaodijun/p/4334964.html

你可能感兴趣的文章
程序员牛人专访0012期|陪伴是对开发最长情的信任
查看>>
芝加哥略影 邂逅芝加哥!
查看>>
体素科技:2018年,算法驱动下的医学影像分析进展
查看>>
算法:什么是LRU算法?
查看>>
Vue 折腾记 - (8) 写一个挺靠谱的多地区选择组件
查看>>
VS Code折腾记 - (3) 多图解VSCode基础功能
查看>>
flex实现左右布局中按钮溢出隐藏效果
查看>>
Redux 高级 -- 源码分析
查看>>
看看“疫苗查询”小程序有温度的代码
查看>>
再不懂区块链,你就OUT了!
查看>>
[译] Javascript开销(Cost)
查看>>
教你玩转自定义View—手撸一个倒计时控件如此简单
查看>>
『翻译』Node.js 调试
查看>>
我的iOS开发之路总结(更新啦~)
查看>>
Java NIO之拥抱Path和Files
查看>>
TensorFlow引入了动态图机制Eager Execution
查看>>
[译] 怎样减少 Android 应用包 60% 的大小?
查看>>
微信原图泄露的只能是 Exif ,你的隐私不在这!!!
查看>>
微信小程序教学第三章(含视频):小程序中级实战教程:列表篇-页面逻辑处理...
查看>>
页面间通信与数据共享解决方案简析
查看>>