Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OWIN 初探

OWIN 初探

作者头像
beginor
发布于 2020-08-10 06:26:51
发布于 2020-08-10 06:26:51
77000
代码可运行
举报
运行总次数:0
代码可运行

OWIN 初探

什么是 OWIN ?

OWIN 的全称是 “Open Web Interface for .NET”, OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口, 其目的是为了实现服务器与应用之间的解耦, 鼓励为 .NET Web 应用开发简单模块。

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

  • 服务器 (Server) HTTP 服务器直接与客户端交互, 并用 OWIN 语义处理请求, 服务器需要一个适配层将客户请求转换 成 OWIN 语义。 支持 OWIN 的服务器有 KatanaNowin
  • 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 。

怎么使用 OWIN

OWIN 通过 NuGet 包的形式发布, 获取和使用都非常方便。 下面就先建立一个最简单的 OWIN 应用:

  1. 打开 Xamarin Studio, 新建一个 C# 命令行程序, 如下图所示:
  1. 然后打开项目属性, 确认目标框架设置为 Mono / .NET 4.5 , 如下图所示:
  1. 向项目中添加如下几个 NuGet 包:
    • Owin
    • Microsoft.Owin
    • Microsoft.Owin.Hosting
    • Microsoft.Owin.Host.HttpListener
  2. 添加一个 OWIN Startup 类, 代码如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Startup {

    public void Configuration(IAppBuilder appBuilder) {
        appBuilder.Run(HandleRequest);
    }

    static Task HandleRequest(IOwinContext context) {
        context.Response.ContentType = "text/plain";
        return context.Response.WriteAsync("Hello, world!");
    }
}
  1. OWIN 约定的处理请求的代理类型是:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Func<IOWinContext, Task> handler
  1. 对应上面 Startup 类的 HandleRequest 方法, 所以上面的 Startup 类就定义了一个最简单的 OWIN 应用, 向客户端输出 Hello, World!
  2. 在自动生成的 Program.cs 文件中的 Main 方法中添加如下代码, 来启动 OWIN 应用:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class MainClass {
   
    public static void Main(string[] args) {
        var url = "https://localhost:8080/";
        var startOpts = new StartOptions(url) {
   
        };
        using (WebApp.Start<Startup>(startOpts)) {
            Console.WriteLine("Server run at " + url + " , press Enter to exit.");
            Console.ReadLine();
        }
    }
}
  1. 现在开始运行程序, 命令行显示如下:

打开浏览器, 访问 https://localhost:8080/ , 得到的响应如下:

到目前为止, 没有 Windows , 更没有 IIS , OWIN 应用就能正常运行了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用 OWIN 作为 ASP.NET Web API 的宿主
ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动 设备)的 HTTP 服务。 ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。
beginor
2020/08/10
2.5K0
使用 OWIN 作为 ASP.NET Web API 的宿主
ASP.NET MVC随想录——锋利的KATANA
正如上篇文章所述那样,OWIN在Web Server与Web Application之间定义了一套规范(Specs),意在解耦Web Server与Web Application, 从而推进跨平台的实现。若要真正使用OWIN规范,那么必须要对他们进行实现。目前有两个产品实现了OWIN规范——由微软主导的 Katana和第三方的Nowin。这篇文章,我主要关注还是Katana,由微软团队主导,开源到CodePlex上。 可以在Visual Studio中输入命令:git clone https://git01
用户1161731
2018/01/11
1.7K0
ASP.NET MVC随想录——锋利的KATANA
一不小心写了个WEB服务器
开场   Web服务器是啥玩意? 是那个托管了我的网站的机器么? No,虽然那个也是服务器,但是我们今天要说的Web服务器主要是指像IIS这样一类的,用于处理request并返回response的工具
用户1153966
2018/03/14
1.2K0
一不小心写了个WEB服务器
MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN
在Membership系列的最后一篇引入了ASP.NET Identity,看到大家对它还是挺感兴趣的,于是来一篇详解登录原理的文章。本文会涉及到Claims-based(基于声明)的认证,我们会详细介绍什么是Claims-based认证,它与传统认证方式的区别,以及它的特点。同时我们还会介绍OWIN (Open Web Interface for .NET) 它主要定义了Web Server 和Web Application之间的一些行为,然后实现这两个组件的解耦(当然远不止这么点东西,我相信OWIN马
用户1153966
2018/03/14
2.8K0
MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN
跨平台:使用OWIN 为WebAPI 宿主
OWIN是什么? OWIN的英文全称是Open Web Interface for .NET。 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。 那Web接口是谁和谁之间的接口呢?是Web应用程序与Web服务器之间的接口,OWIN就是.NET Web应用程序与Web服务器之间的接口。 为什么需要这样一个接口呢?因为.NET Web应用程序是运行于Web服务器之中的,.NET Web应用程序需要通过Web服务器接收用户的请求,并且通过Web服务器将响应内容发送用户。如果没有
逸鹏
2018/04/09
1.5K0
跨平台:使用OWIN 为WebAPI 宿主
基于OWin的Web服务器Katana发布版本3
当 ASP.NET 首次在 2002 年发布时,时代有所不同。 那时,Internet 仍处于起步阶段,大约有 5.69 亿用户,每个用户平均每天访问 Internet 的时间为 46 分钟,大约有 3 百万个网站。 仅仅在 10 年之后,相同的测量指标揭示,大约有 22.7 亿个 Internet 用户,每个用户平均每天访问 Internet 的时间为 4 小时,大约有 5.55 亿个网站。伴随着网络应用程序开发的不断演进,ASP.NET也伴随着产生了新的技术,比如ASP.NET MVC和ASP.NET
张善友
2018/01/29
1.5K0
在VS中使用TinyFox调试OWIN应用(转)
 在很早一段时间之前,我曾经写过一篇关于Katana的使用方法的文章《如何安装并简单的使用OwinHost——Katana》,上面就有介绍如何在VS中调试使用Katana作为Host的Application,有阅读过的童鞋,只要稍加改进,即可适用于TinyFox的情况。
yoyofx
2018/09/05
4830
在VS中使用TinyFox调试OWIN应用(转)
使用 OWIN Self-Host ASP.NET Web API 2
Open Web Interface for .NET (OWIN)在Web服务器和Web应用程序之间建立一个抽象层。OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离开IIS之外,关于OWIN的详细资料可参考博客 MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN。使用OWIN 自宿主 ASP.NET WebAPI 2可以参考以下2篇文章: Use OWIN to Self-Host ASP.NET Web API 2 As
张善友
2018/01/29
1.3K0
使用 OWIN 搭建 OAuth2 服务器
很多知名网站都采用支持OAuth2认证, 允许第三方应用接入, 客户端接入 OAuth2 服务器这方面的资料已经很多了, 但是关于怎么搭建自己的 OAuth 服务器这方面的资料则比较少, 接下来就介绍一下怎么用微软的 OWIN 中间件搭建自己的 OAuth 服务, 实现 OAuth2 框架中的认证服务器和资源服务器 。
beginor
2020/08/10
1.6K0
使用 OWIN 搭建 OAuth2 服务器
Owin介绍
如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。 那Web接口是谁和谁之间的接口呢?是Web应用程序与Web服务器之间的接口,OWIN就是.NET Web应用程序与Web服务器之间的接口。
happlyfox
2019/03/14
1.1K0
Owin介绍
使用OWIN作为WebAPI的宿主
GuZhenYin
2018/01/04
1K0
使用OWIN作为WebAPI的宿主
Visual Studio 2013 Web开发
cnbeta新闻:微软正式发布Visual Studio 2013 RTM版,微软还发布了Visual Studio 2013的最终版本、.NET 4.5.1以及Team Foundation Server 2013。下面我们体验下Visual Studio 2013 Web开发方面有哪些特性,具体可以参看http://www.asp.net/visual-studio/overview/2013/release-notes。 1、.NET Framework 2.0/3.0/3.5/4.0/4.5/4.5
张善友
2018/01/29
2.3K0
Visual Studio 2013 Web开发
OWIN与Katana详解
GuZhenYin
2018/01/04
9290
OWIN与Katana详解
ASPNET_WEBAPI快速学习02
这部分内容的学习,已经放了大半年时间了,果断补充上,尽早将过去遗留的老技术坑都补上。首先将介绍服务幂等性的概念和相关解决方案,这部分也将是本文的理解难点,由于WebAPI是一种Restful风格服务的实现方式,其遵循HTTP标准方法,因此理解好这部分概念,对于提供良好的业务服务显得非常重要。之后则将介绍SignalR这一长连接通讯的集成解决方案的概念和实践,这部分在交互式的Web场景中非常有效。最后将补充Owin、IOC、EnterpriseLibrary等相关知识,这些也都是.NET程序员比较容易忽视的知
用户1216676
2018/01/24
2.3K0
ASPNET_WEBAPI快速学习02
在 Nowin 下运行 ASP.NET 5 Beta 2
ASP.NET Mvc vNext 改名为 ASP.NET 5 , 看来距离正式发布已经不远了, 在发布之初就号称可以跨平台运行, 在发布的早期 alpha 版本中, 做个一次在 mono 下尝试 ASP.NET vNext的试验, 虽然最终以失败告终, 但是在试验的过程中还是还是收获良多, 对 OWIN 有了更深一步的认识, 也熟悉了 OWIN 的第三方实现 Nowin 。
beginor
2020/08/10
9640
在 Nowin 下运行 ASP.NET 5 Beta 2
使用OAuth打造webapi认证服务供自己的客户端使用
一、什么是OAuth OAuth是一个关于授权(Authorization)的开放网络标准,目前的版本是2.0版。注意是Authorization(授权),而不是Authentication(认证)。用来做Authentication(认证)的标准叫做openid connect,我们将在以后的文章中进行介绍。 二、名词定义 理解OAuth中的专业术语能够帮助你理解其流程模式,OAuth中常用的名词术语有4个,为了便于理解这些术语,我们先假设一个很常见的授权场景: 你访问了一个日志网站(third part
逸鹏
2018/04/10
2.9K0
使用OAuth打造webapi认证服务供自己的客户端使用
ASP.NET MVC 5 Authentication Breakdown
In my previous post, "ASP.NET MVC 5 Authentication Breakdown", I broke down all the parts of the new ASP.NET MVC authentication scheme. That's great, but I didn't have a working example that you, a curious developer, could download and play around with. So
阿新
2018/04/12
9830
ASP.NET MVC随想录——漫谈OWIN
什么是OWIN OWIN是Open Web Server Interface for .NET的首字母缩写,他的定义如下: OWIN在.NET Web Servers与Web Application之间定义了一套标准接口,OWIN的目标是用于解耦Web Server和Web Application。基于此标准,鼓励开发者开发简单、灵活的模块,从而推进.NET Web Development开源生态系统的发展。 正如你看到的这样,OWIN是接口、契约,而非具体的代码实现,仅仅是规范(specificatio
用户1161731
2018/01/11
1.4K0
ASP.NET MVC随想录——漫谈OWIN
ASP.NET MVC随想录——创建自定义的Middleware中间件
经过前2篇文章的介绍,相信大家已经对OWIN和Katana有了基本的了解,那么这篇文章我将继续OWIN和Katana之旅——创建自定义的Middleware中间件。 何为Middleware中间件 Middleware中间件从功能上可以理解为用来处理Http请求,当Server将Http请求封装成符合OWIN规范的字典后,交由Middleware去处理,一般情况下,Pipeline中的Middleware以链式的形式处理Http请求,即每一个Middleware都是最小的模块化,彼此独立、高效。 从语法上
用户1161731
2018/01/11
9070
ASP.NET MVC随想录——创建自定义的Middleware中间件
.NET之Hangfire快速入门和使用
  定时任务调度问题,是一个老生常谈的问题。网上有许多定时任务调度的解决方案,对于我而言很早以前主要是使用Window计划和Window服务来做任务定时执行,然后就开始使用定时任务调度框架Quartz.Net。但是却一直没有上手过Hangfire这个自带后台任务调度面板,可以在后台手动执行任务的神奇的任务调度框架。前段时间终于开始对他下手了,通过在网上查阅了一些资料和查看了Hangfire在Github中的demo,终于在我自己的项目中用上了Hangfire。在该篇文章中主要简单介绍一下什么是Hangfire,Hangfire的基本特征与优点和分别使用MySQL,MS SQL Server作为存储使用。
追逐时光者
2019/09/30
2.1K0
.NET之Hangfire快速入门和使用
相关推荐
使用 OWIN 作为 ASP.NET Web API 的宿主
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验