基于ASP.NET WebAPI OWIN实现Self-Host项目实战
引用
寄宿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访问;
基于ASP.NET WebAPI OWIN实现Self-Host项目实战的更多相关文章
- 基于Asp.Net webApi owin oauth2的实现
干货地址:https://git.oschina.net/DpMa_/WebApi-Owin-oauth2
- ASP.NET WebApi OWIN 实现 OAuth 2.0
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...
- [转]ASP.NET WebApi OWIN 实现 OAuth 2.0
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...
- ASP.NET WebApi OWIN 实现 OAuth 2.0(自定义获取 Token)
相关文章:ASP.NET WebApi OWIN 实现 OAuth 2.0 之前的项目实现,Token 放在请求头的 Headers 里面,类似于这样: Accept: application/jso ...
- 亲手搭建一个基于Asp.Net WebApi的项目基础框架1
目标:教大家搭建一个简易的前后端分离的项目框架. 目录: 1:关于项目架构的概念 2:前后端分离的开发模式 3:搭建框架的各个部分 这段时间比较闲,所以想把之前项目里用到的一些技术写到博客里来,分享给 ...
- 亲手搭建一个基于Asp.Net WebApi的项目基础框架4
实现目的:配置website端与服务端对接 1:配置好各项配置文件 2:server端编写接口客户端调用 1.1首先配置文件有log4的配置文件,有config的配置文件,还有服务列表的配置文件 首先 ...
- 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-1
来个目录吧: 第一章 第二章 第三章 暂时就这么多.后面路线更新吧 本系列文章为翻译加上我个人的使用心得理解,希望帮助热爱学习的程序员. 珍重声明:本系列文章会跟原文有点出入,去掉了罗里吧嗦的文字. ...
- Asp.net webapi Owin Get request form data
var formData = await context.Request.ReadFormAsync() as IEnumerable<KeyValuePair<string, strin ...
- 亲手搭建一个基于Asp.Net WebApi的项目基础框架3
1:使用Framework工具类封装http请求 接上第二篇的步骤,现在在站点中使用封装好的组件,将framework编译好之后把dll提取出来,然后放到lib当中 在website中引用dll 接下 ...
随机推荐
- 「Android 开发」入门笔记
「Android 开发」入门笔记(界面编程篇) ------每日摘要------ DAY-1: 学习笔记: Android应用结构分析 界面编程与视图(View)组件 布局管理器 问题整理: Andr ...
- 洛谷 P4656: LOJ 2484: [CEOI2017]Palindromic Partitions
菜菜只能靠写简单字符串哈希维持生活. 题目传送门:LOJ #2484. 题意简述: 题面讲得很清楚了. 题解: 很显然从两边往中间推,能选的就选上这个贪心策略是对的. 如何判断能不能选上,直接字符串哈 ...
- Basic(消息)的一些属性及方法
AMQP协议:是一个金融级的消息队列,确保消息万无一失 1.消息发布端的确认 手动确认消息是否已经发送 场景:发布消息到RabbitMQ中,我们需要知道这个消息是否发布成功了. *发布确认影响性能 c ...
- NTP多种模式的配置
自己安装和配置了一个NTP服务器的一些心得,希望与大家分享.写了一个文档包含了各个命令和参数的具体含义,由于不能上传无法与大家分享.以后还希望大家多多支持和帮助我们共同成长,我会不断做把这些年的经营和 ...
- spirngboot 注解方式注入自定义参数
在代码中 @value("oracle.user") private String user; 在配置文件中 oracle.user=root
- c++ primer 学习杂记1
读到p483 公有,私有,受保护的继承. 1.关于基类成员在派生类中的访问级别: 1) 无论何种继承方式, 派生类都无法访问基类中的private成员. 2) 派生类可以限制,而不能放松对所继承成员的 ...
- adb shell 命令计算APP应用的 FPS 和评价流畅度。
设计初衷: 1.面临用户和公司内领导试用中反馈的卡顿问题,思考如何能有效量化评估? 2.如何在尝试复现卡顿的过程中持续监控FPS和丢帧情况? 操作说明如下: (1)脚本源码的下载:(https://p ...
- PHP 利用redis 做统计缓存mysql的压力
<?php header("Content-Type:text/html;charset=utf-8"); include 'lib/mysql.class.php'; $m ...
- A Connection to the remote computer could not be established
Go to device manager: uninstall WAN Miniport (IP), Wan Miniport(IPv6) and Wan Miniport (PPTP). Refre ...
- bzoj 1190
思路:分层dp,因为给的w都是a*(2 ^ b)的形式, 我们将这些物品按b分层, 我们设 dp[ i ][ j ]表示在 第 i 层 容量为(j << i)的最大值, 然后通过层与层之间 ...