WebApi系列~自主宿主HttpSelfHost的实现
2016-10-28 10:02
459 查看
WebApi系列~自主宿主HttpSelfHost的实现
回到目录
宿主一词我们不会陌生,它可以看作是一个基础设施,它为一些服务和功能提供最底层的支持,如你的web应用程序可以运行在iis或者apache上,而这两个东西就是web应用程序的宿主,而今天说的自主宿主SelfHost就是说,它可以自己去监听自己的服务,如你可以把一个web应用程序宿主到一个console控制台程序上,或者把一个webApi宿主到一个console或者windowService上,这都是可以的。
支付宝扫一扫,为大叔打赏
作者:仓储大叔(大叔博客园)
出处:http://www.cnblogs.com/lori/ 欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言。
分类:
Web Api & CORS
好文要顶
关注我
收藏该文
张占岭
关注 - 37
粉丝 - 2512
+加关注
2
0
«
上一篇:我心中的核心组件(可插拔的AOP)~第十五回 我的日志组件Logger.Core(策略,模版方法,工厂,单例等模式的使用)
»
下一篇:知方可补不足~利用LogParser将IIS日志插入到数据库
posted @ 2014-11-25 10:48
张占岭 阅读(4990) 评论(9)
编辑 收藏
评论列表
#1楼
2014-12-16 03:09
文楚
请问如何自托管一个 http文件服务器,就像一个简单的iis
支持(0)反对(0) http://pic.cnblogs.com/face/28457/20141210231443.png
#2楼[楼主]
2014-12-16 17:59
张占岭
@ 文楚
可以自己用node.js写一套简单的...
支持(0)反对(0)
/Uploads/Images/Content/202004/28/85eb1ce0ea538981f94afb1fba40f1de.png
#3楼
2014-12-19 01:20
文楚
就是想一个dll解决问题TT方便嵌入啊。
支持(0)反对(0) http://pic.cnblogs.com/face/28457/20141210231443.png
#4楼[楼主]
2014-12-19 08:42
张占岭
@ 文楚
那还真不行,一个exe或者window服务,做个自宿主是可以的。
支持(0)反对(0)
/Uploads/Images/Content/202004/28/85eb1ce0ea538981f94afb1fba40f1de.png
#5楼
2014-12-19 12:43
文楚
@ 张占岭
因为当前我用的是winform,要给客户安装,客户要有一个极其简单的服务器功能,部署node很不便,windows服务的话又怕将来对升级有影响 现在的是自己写了一个简单实现简易 iis的一个http文件分发,又开了一个wcf的selfhost,结果就是监听不同的端口,总觉得特别别扭啊。。。
最后说一下iis,我直接用httpserver去做个一个监听,对于小文件又进行了缓存,竟然在静态文件并发上超不过iis,看来iis确实不是这么简单。
支持(0)反对(0) http://pic.cnblogs.com/face/28457/20141210231443.png
#6楼
2015-04-24 13:58
囧月言炎
通俗易懂。
支持(0)反对(0) http://pic.cnblogs.com/face/509118/20130804143859.png
#7楼
2015-08-22 15:07
422159763
这样用处不大吧。。干嘛不托管在IIS上,可以是局域网服务器也可以是外网服务器。
支持(0)反对(0) http://pic.cnblogs.com/face/u338465.jpg?id=07203723
#8楼
2016-05-01 19:12
15279124759
我想说的是你这程序真的能正常运行,host一运行马上就结束了,别坑人
支持(0)反对(0)
#9楼34376322016/5/23
19:33:34 2016-05-23 19:33
hahanonym
MapHttpRoute这里有个坑,没有标注action,那么控制器里面的actionName没有办法识别。
作为一个只写winform的遇到这个坑还是栽了
支持(0)反对(0) http://pic.cnblogs.com/face/575424/20131018234658.png
刷新评论刷新页面返回顶部
回到目录
宿主一词我们不会陌生,它可以看作是一个基础设施,它为一些服务和功能提供最底层的支持,如你的web应用程序可以运行在iis或者apache上,而这两个东西就是web应用程序的宿主,而今天说的自主宿主SelfHost就是说,它可以自己去监听自己的服务,如你可以把一个web应用程序宿主到一个console控制台程序上,或者把一个webApi宿主到一个console或者windowService上,这都是可以的。
一 需要添加一些程序集引用
二 代码实现
#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(10000); 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); } }
四 测试
回到目录支付宝扫一扫,为大叔打赏
作者:仓储大叔(大叔博客园)
出处:http://www.cnblogs.com/lori/ 欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言。
分类:
Web Api & CORS
好文要顶
关注我
收藏该文
张占岭
关注 - 37
粉丝 - 2512
+加关注
2
0
«
上一篇:我心中的核心组件(可插拔的AOP)~第十五回 我的日志组件Logger.Core(策略,模版方法,工厂,单例等模式的使用)
»
下一篇:知方可补不足~利用LogParser将IIS日志插入到数据库
posted @ 2014-11-25 10:48
张占岭 阅读(4990) 评论(9)
编辑 收藏
评论列表
#1楼
2014-12-16 03:09
文楚
请问如何自托管一个 http文件服务器,就像一个简单的iis
支持(0)反对(0) http://pic.cnblogs.com/face/28457/20141210231443.png
#2楼[楼主]
2014-12-16 17:59
张占岭
@ 文楚
可以自己用node.js写一套简单的...
支持(0)反对(0)
/Uploads/Images/Content/202004/28/85eb1ce0ea538981f94afb1fba40f1de.png
#3楼
2014-12-19 01:20
文楚
就是想一个dll解决问题TT方便嵌入啊。
支持(0)反对(0) http://pic.cnblogs.com/face/28457/20141210231443.png
#4楼[楼主]
2014-12-19 08:42
张占岭
@ 文楚
那还真不行,一个exe或者window服务,做个自宿主是可以的。
支持(0)反对(0)
/Uploads/Images/Content/202004/28/85eb1ce0ea538981f94afb1fba40f1de.png
#5楼
2014-12-19 12:43
文楚
@ 张占岭
因为当前我用的是winform,要给客户安装,客户要有一个极其简单的服务器功能,部署node很不便,windows服务的话又怕将来对升级有影响 现在的是自己写了一个简单实现简易 iis的一个http文件分发,又开了一个wcf的selfhost,结果就是监听不同的端口,总觉得特别别扭啊。。。
最后说一下iis,我直接用httpserver去做个一个监听,对于小文件又进行了缓存,竟然在静态文件并发上超不过iis,看来iis确实不是这么简单。
支持(0)反对(0) http://pic.cnblogs.com/face/28457/20141210231443.png
#6楼
2015-04-24 13:58
囧月言炎
通俗易懂。
支持(0)反对(0) http://pic.cnblogs.com/face/509118/20130804143859.png
#7楼
2015-08-22 15:07
422159763
这样用处不大吧。。干嘛不托管在IIS上,可以是局域网服务器也可以是外网服务器。
支持(0)反对(0) http://pic.cnblogs.com/face/u338465.jpg?id=07203723
#8楼
2016-05-01 19:12
15279124759
我想说的是你这程序真的能正常运行,host一运行马上就结束了,别坑人
支持(0)反对(0)
#9楼34376322016/5/23
19:33:34 2016-05-23 19:33
hahanonym
MapHttpRoute这里有个坑,没有标注action,那么控制器里面的actionName没有办法识别。
作为一个只写winform的遇到这个坑还是栽了
支持(0)反对(0) http://pic.cnblogs.com/face/575424/20131018234658.png
刷新评论刷新页面返回顶部
相关文章推荐
- WebApi系列~自主宿主HttpSelfHost的实现
- WebApi系列~自主宿主HttpSelfHost的实现
- ASP.NET WebAPi(selfhost)实现文件同步或异步上传
- ASP.NET WebAPi(selfhost)实现文件同步或异步上传
- asp.net web api的自托管模式HttpSelfHostServer可以以控制台程序或windows服务程序为宿主,不单单依赖于IIS web服务器
- HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析
- Microshaoft Cross-Domain + ASP.NET MVC 5 WebAPI 2 + Self-Host + JsonpMediaTypeFormatter + WCF + JsonP + PerformaceCounterFilter + Knockout.js + MVVM
- HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
- 【Java Servlet 开发系列之二】创建WebApp详细步骤,通过Servlet实现http简单交互
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
- FCL小应用系列-----------如何利用APM实现HttpWebRequest异步发送接收
- .net知识系列之七:底层解密(ASP.NET底层之旅,HttpApplication类实例,HttpApplication及Global.asax,实现自定义文件类型处理)
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量(不太懂)
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【五】——在Web Api中实现Http方法(Put,Post,Delete)
- 详解Node.js API系列 Http模块(2) CNodejs爬虫实现
- HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析
- BlogEngine.Net架构与源代码分析系列part13:实现分析(上)——HttpHandlers与HttpModules
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量