WebApi系列~自主宿主HttpSelfHost的实现
宿主一词我们不会陌生,它可以看作是一个基础设施,它为一些服务和功能提供最底层的支持,如你的web应用程序可以运行在iis或者apache上,而这两个东西就是web应用程序的宿主,而今天说的自主宿主SelfHost就是说,它可以自己去监听自己的服务,如你可以把一个web应用程序宿主到一个console控制台程序上,或者把一个webApi宿主到一个console或者windowService上,这都是可以的。
一 需要添加一些程序集引用
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAALsAAAAUCAIAAABauNsGAAABIUlEQVRoge2ZSxKDIBBEPUkOk/ufh3V21hT0tLSgJqTfIoWRzwDPwUq2YozC9nQA5sewMUbDxhgNG2M0bIzRsDFGw8YYDc2YdwOs9grMCFJgH3QwgNj2kYl8LdiYzIkeY+Liqgs9ZWPiTo+MBftpW/2bTNcaozLLmD3NjIxlYyBdxlSFzlOpuoyHRUEnFzxHYIVDFVpjSEi8Hx5hVmFhjebnmB34aPIjo9UlFtpPMm61kSSkw/ilHMMnuAAXGlOSLY93s+WOFaqccc4YmB6k4LNWNoYx8uab5WqyH/Cy0xhYIJ339ANb2ZhRsrOc54/q+7ZaSYzJui3IVzIWv8XVh/kMLM0S3PcL3sKLGFl+mncYs/YzF1k+wRT/S2BUbIzR+AD4TLgSQ7fGkQAAAABJRU5ErkJggg==" alt="" />
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN4AAAA/CAIAAAAAHeHHAAACS0lEQVR4nO3aW26EMAyF4VlJFtP9r4fnPlRCGWI7CZhwKv7voZpLJjH0KHPBn22VUsqytZ71niO91WfBGqWUl/y33nOkC6yIJnAC0YQooglRRBOiiCZEEU2IIpoQRTQhai6aPw1zWKlkFDnhb8X6rzmGH8b12dH0wjcSzfq/PpuA64kZiWbKQrjbvdGcRTSxG4rm4cbgG/rh7h6X+kY90vwMYA6Ig9WdxxsDKfm75s58Z29veC9pB0/tiIOrk05ZN0Zzc7JVP+tlsR5Qb7TeVO0k5h5JNP+R/G/o3tcg7w3UG+/dvbJrto8QTVn5v2t6nwjjHfHweDtsc6Lpxc5bzrwLQet+cicHmEKXO0RxoRKiiCZEEU2IIpoQRTQhimhCFNGEKKIJUXS5u/Mcrmqmlok+utz7xQx2iiAXXe79YojmI+hy788TVOgNIK/X0eXe31mnds2RmTGCLneiKYoud6Ipii73qLygpHgwubyOLvdkLznMBehyz8SWmYgLlRBFNCGKaEIU0YQooglRRBOiiCZEEU2Iosvdnce7UJlSZHx+gmfLt5sqVECXe7+Y+IiuHGP82u5aZoWzNciiy71fzH3RnB1JNOlyt5drX+UNGJm5+6B5CN3lvArj8yyILvfH+jXjCs+tde48a6LL/bFoHgab+9/sWl7N8XnWRJf76mh2N8srawUTxkchiC73qLygpHhwd2Zvkr34dtjhEa9C7wTG51kQXe7JXnKYC9Dlnsncn3AOFyohimhCFNGEKKIJUUQToogmRBFNiPoFJxWweEHLi+MAAAAASUVORK5CYII=" alt="" />
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQcAAAAbCAIAAAD+qt2kAAABL0lEQVR4nO3aQRLCIBBEUU/CYbz/eVi7MoU9QIYUCAn/rWIkMAs6UOIrbiyEMLsErOg1u4BpwtfsQrCcfVMBlJAKQJEKQJEKQJEKQJEKQJEKQJEKQDWk4m3YNse52GpnZK31hF9Da8NqMqkozXtPKmLyN4rWyTRu8tmenWORhz0NScWxXDSVQiqwiPNUyMW1VKT7kPTb9Kbdq8hTtk3lZqWNf1/UNBY7rscYtYOyMYi5PMgMs/04LypP1ZvVOTvxFIYb+VMqPG/rC6mQgSptskWesiXVxyIVz9D5N6jY8kbvkgpPm16p8BdGKm6t83lFughkN+XHx1iYrKe79vS+XYVKnWSXptIkrixKrRXijjjFy8imCPsgFYAiFYAiFYAiFYAiFYAiFYAiFYAiFYD6ALcVkOau9xz3AAAAAElFTkSuQmCC" alt="" />
二 代码实现
#region Web Api监听
Assembly.Load("Lind.DDD.TestApi"); //手工加载某个api程序集的controller
var config = new HttpSelfHostConfiguration("http://localhost:3333");
config.Routes.MapHttpRoute("default", "api/{controller}/{id}", new { id = RouteParameter.Optional });
var server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
Console.WriteLine("Server is opened");
#endregion
三 web api代码
/// <summary>
/// 测试webapi
/// </summary>
public class TestController : ApiController
{
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
} // GET api/<controller>/5
public string Get(int id)
{
return "value";
} // POST api/<controller>
public void Post([FromBody]Demo value)
{
Thread.Sleep();
Logger.Core.LoggerFactory.Instance.Logger_Info(value.ToString());
} // PUT api/<controller>/5
public void Put(int id, [FromBody]string value)
{
} // DELETE api/<controller>/5
public void Delete(int id)
{
}
}
public class Demo
{
public string appName { get; set; }
public string url { get; set; }
public override string ToString()
{
return string.Format("appName:{0},url:{1},datetime:{2}", this.appName, this.url, DateTime.Now);
}
}
四 测试
aaarticlea/png;base64,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" alt="" />
WebApi系列~自主宿主HttpSelfHost的实现的更多相关文章
- WebApi系列~目录
回到占占推荐博客索引 写了这个系列的文章不少了,也应该为大家写个目录了,最近很刮了很多SOA的风,很多企业都将自己的系统进行分割,通常是按模块进行拆分,为这个模块提供统一的接口提供业务服务,这不紧可以 ...
- Http下的各种操作类.WebApi系列~通过HttpClient来调用Web Api接口
1.WebApi系列~通过HttpClient来调用Web Api接口 http://www.cnblogs.com/lori/p/4045413.html HttpClient使用详解(java版本 ...
- 【WebApi系列】浅谈HTTP
[01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi如何传递参数 [04]详解WebApi测试和PostMan [05]浅谈WebApi Core ...
- 【WebApi系列】详解WebApi如何传递参数
WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...
- 【WebApi系列】浅谈HTTP在WebApi开发中的运用
WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...
- WebApi系列知识总结
WebApi系列知识 一.webApi项目搭建 1.新建WebApi项目 (1) (2) (3) (4) Areas – HelpPage – App_Start – HelpPageConfig.c ...
- ASP.NET Core 2.2 WebApi 系列【九】使用SignalR (作者:tenghao510 ) 学习及内容补充
原文地址: ASP.NET Core 2.2 WebApi 系列[九]使用SignalR 今天,看到了大牛的这篇博文, 发了一下评论, 我很惊喜, 没想到他很快就回复了我, 而且通过QQ帮助了S ...
- VS Code WebApi系列——2、jwt结合数据库校验
Knowledge should be shared free. 我们都知道WebApi最重要的作用就是为外部服务提供相应的数据接口和服务,所以一般WebApi都会连接后台数据库,那么最重要的一件事就 ...
- WebApi系列(从.Net FrameWork 到 .Net Core)
一. 简介 1. 什么是WebApi? WebApi是一个很广泛的概念,在这里我们特指.Net平台下的Asp.Net WebApi框架,它是针对各种客户端(浏览器.APP等)来构建Http服务的一个 ...
随机推荐
- hdu 1312(DFS)
Red and Black Tme Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- Unity 4.x Asset Bundle 重名
在 Unity 4.5.1f3中测试发现如下问题 两个不同文件下相同名字的资源打包成AssetBundle以后加载失败,提示错误 xxxxx can't be loaded because anot ...
- CSS 自定义字体
移动端如何兼容UI给的字体 [toc] 移动端的默认字体 IOS 默认中文字体是Heiti SC 默认英文字体是Helvetica 默认数字字体是HelveticaNeue Android 默认中文字 ...
- Spring 学习笔记 2. 尚硅谷_佟刚_Spring_IOC&DI概述
1,远古时代 这里讲述的IOC的演变历史,举一个例子,假如需要生成HTML和PDF格式的报表,以前的开发方式就是有个报表服务类需要使用报表生成器 它需要和其他三个都关联,它既需要知道接口类型,也需要知 ...
- xUtils 中的BitmapUtils 全面注释
/** * 加载图片工具类 * @author afu * */ public class BitmapUtils implements TaskHandler { /** * 判断任务是否暂停 */ ...
- 'MAMapKit/MAMapKit.h' file not found
1.应该是derived data没清导致的.在Window -> Organizer -> Projects,找到你这个项目,然后点下右边derived data后边的delete按钮. ...
- CardView
CardView继承至FrameLayout类,可以在一个卡片布局中一致性的显示内容,卡片可以包含圆角和阴影.CardView是一个Layout,可以布局其他View. CardView常用属性: c ...
- Java学习笔记(五)
作业1:将指定目录下的所有文件显示到列表框(JList)组件中. 代码如下: import java.awt.; import java.awt.event.; import javax.swing. ...
- JavaScript中String的math方法与RegExp的exec方法的区别
1.exec是正则表达式的方法,方法参数为字符串.match为字符串的方法,参数为正则表达式对象. 2.match与exec都返回数组.如果调用exec方法的正则表达式没有分组内容,则返回第一个匹配的 ...
- Win10 无法完全关机问题
Win10是重新安装的.开机运行时间长了或者跑的东西多了.关机,键盘灯还是亮的,要强制按电源键关机才行. 问题解决:从网上搜以为是显卡驱动问题,上官网更新最新驱动,结果还是关不了机.偶然间搜到是Int ...