asp中开通socket_基于ASP.NET WebAPI OWIN实现SelfHost项目实战

ebcc59c51fbd8f3df191df4934af2bd0.png

引用

寄宿ASP.NET Web API 不一定需要IIS 的支持,我们可以采用Self Host 的方式使用任意类型的应用程序(控制台、Windows Forms 应用、WPF 应用甚至是Windows Service)作为宿主。

一、摘要

本期同样带给大家分享的是阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何实现采用微软的ASP.NET OWIN技术承载WebAPI服务,如果您对本期的教程内容感兴趣,那么请允许让阿笨带着大家一起学习吧!

废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

二、概念名称含义解释

2.1、Host和Self—Host分别是什么意思?

Host:中文解释是“宿主”的意思。Self—Host中文解释是“自我宿主”的意思。Host宿主一词我们不会陌生,它可以看作是一个基础设施,它为一些服务和功能提供最底层的支持,如你的web应用程序可以运行在iis或者apache上,而这两个东西就是web应用程序的宿主,而今天说的自主宿主SelfHost就是说,它可以自己去监听自己的服务,如你可以把一个web应用程序宿主到一个console控制台程序上,或者把一个webApi宿主到一个控制台应用程序、桌面应用程序或者windowService上,这都是可以的。

2.2、OWIN到底是神马东西?

OWIN的英文全称是Open Web Interface for .NET。

OWIN是针对.NET平台的开放Web接口,那Web接口是谁和谁之间的接口呢?OWIN就是.NET Web应用程序与Web服务器之间的接口。

OWIN定义了.NET web服务器和web应用程序间的抽象。OWIN通过将web服务器从应用程序解耦,使得为.NET web开发创建中间件和移植web应用程序到其他托管——比如,Window服务或其他进程的自我托管——变得更加容易。

11f6b9a5b3a0195d3a961684ce245ab4.png

2.3、基于OWIN规范实现的HTTP服务器有哪些?

支持OWIN标准的WEB应用的高性能的跨平台HTTP服务器,比如:TinyFox、Jexus Web Server 等等。

2.4、Owin协议的实现项目?

上面说了一大堆 Owin 的东西,而且是“虚”的东西,因为它只是定义,并不包含任何实现,基于 Owin 协议实现的组件和框架集合x项目有哪些?如下:

Katana、Nowin、Fracture等等。(我理解也不是很深刻,不敢随便乱写,怕误导别人!!!)

四、需求分析

4.1、上期回顾

上一期我们分享了基于开源SuperSocket实现客户端和服务端通信项目实战实现了WEB网页提交打印数据给WEB服务端,WEB服务端将接受的打印数据通过Socket通讯服务器推送给指定的客户端。

我们能否简化上面的调用过程步骤呢?

直接让客户端将打印数据给本地的客户端,而无须再通过Socket通讯服务端进行中转。

4.2、原理图

5702590930da3ed3bfc5e563009f4f94.png

4.3、那么我们今天要解决的问题可以总结为下面的一句话:

如何让WEB网页端直接以HTTP方式访问本地桌面客户端,就像访问远程IIS上的Web应用程序一样?

4.4、实现WEB应用程序的Self-Host解决方案

通过HttpListener实现简单的Http服务

基于WCF堆栈的自宿主SelfHosting

采用ASP.NET HttpSelfHost来承载WebAPI服务 (.NET 4.0)

采用ASP.NET OWIN来承载WebAPI服务(.NET4.5 微软推荐使用)

等等......

五、涉及覆盖的知识点

ASP.NET WebAPI HttpSelfHost/OWIN 如何以桌面应用程序方式,宿主承载WebApi服务;

ASP.NET WebAPI HttpSelfHost/OWIN 如何让服务端支持CROS跨越访问;

IE10.0 以下浏览器通过XDomainRequest实现CORS访问;

六、源码在线解读和演示

7dabe3590923b4b5ea029f40953c8d3b.png

e86d633c93024145a05e9e23fa8bf0f7.png

80c55cae7c06895d0d398d0c8c70a5f5.png

腾讯课堂

28b32e8e35aa40c4d523ee3f0c59bb9a.png

网易云课堂

4f687534fba502beed14d21c74225609.png

不信的话,扫一扫

9e6a24ced9e6df021e351791d65397ce.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值