引用

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

一、摘要

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

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


你想要的干货都在这

四、需求分析

4.1、上期回顾

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

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

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

4.2、原理图


原理图

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

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

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

通过HttpListener实现简单的Http服务(.NET 2.0+)

基于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访问;

六、源码在线解读和演示

【网易云课堂】:点击在线观看

【腾讯课堂】:点击在线观看

【微信公众号】:跟着阿笨一起玩NET