Jexus作为一款运行于Linux/FreeBSD平台上,以支持ASP.NET著称的高性能HTTP服务器和反向代理服务器,继5.6版完成对OWIN标准应用的支持后,就把着力点放到了对ASP.NET5的支持。

但是,由于ASP.NET5与之前的ASP.NET相比,不管是从运行环境还是部署方式都发生了革命性的变化,Jexus很难像“前ASP.NET时代”那样,把ASP.NET5轻易地纳入其工作进程内直接运行。

支持ASP.NET5,摆在Jexus面前有多种待选方案,比如利用OWIN协议针对ASP.NET5开发专用的适配器,或者利用Jexus的反向代理功能,等等等等,但反复权衡之后,Jexus 5.8.1版选择了一条更加直捷且现实可行的方案:使用一种类似于“端口转发”的新功能,把网站端口与应用程序宿主端口“桥接”起来。

之所以选择这个方案,是因为其它方案目前的局限性都比较大:

1,OWIN方案。由于mono与.NET Core是完全不同的两个运行平台,本质上有很大的不同,为在Jexus进程内运行的OWIN适配器的开发工作造成了极大的困难,而且ASP.NET5还在发展中,架构方面、API方面都有相当的不确定性;

2,反向代理方案。Jexus支持反向代理并且可以利用它做负载均衡,但是,反向代理由于需要对外部用户发过来的请求包和工作服务器发回来的响应包进行不同程度的解析和重组,必然会消耗一定的计算资源。而且,反向代理对于WebSocket等技术的支持也有很大的难度和更大的性能消耗;

3,基于.NET Core重新改写Jexus。这个方案明显不现实:原因之一,Jexus必须继续支持已经在生产环境中被广泛使用的“前ASP.NET”,如果基于core改写,就会出现与“前ASP.NET”兼容性问题甚至出现“断代”风险,这绝不是Jexus用户愿意看到的事;原因之二,Jexus已经是一个开发了多年的成熟的WEB服务器,重写Jexus绝不是一个简单的事情,需要花费相当长的时间和非常大的精力。

端口“转发”有着类式端口“桥接”的直接效果,它既避免OWIN方案的开发难度,也避免了反向代理方案在性能方面的耗损和应用层交互协议的局限性。而且更重要的是,这个方案在支持微软为ASP.NET5量身打造的Kestrel这个宿主服务器的同时,也支持其它的花样繁多的自宿主应用,把Tomcat、node.js的服务让Jeuxs整合起来对外统一用80端口提供服务,也完全是可行的。

Jexus 5.8.1 BETA1已经发布,感兴趣的朋友可以到 http://www.linuxdot.net/ 去下载。

ASP.NET跨平台技术QQ群:102732979。

为支持ASP.NET5跨平台,Jexus再添新举措的更多相关文章

  1. 让ASP.NET5在Jexus上飞呀飞

    就在最近一段时间,“Visual Studio 2015 CTP 5”(以下简称CTP5)发布了,CTP5的发布不仅标志着新一代的VisualStudio正式发布又向前迈出了一步,还标志着距离ASP. ...

  2. Asp.Net跨平台 Jexus 5.8.1 独立版

    在Linux上运行ASP.NET网站或WebApi的传统步骤是,先安装libgdiplus,再安装mono,然后安装Jexus.在这个过程中,虽然安装Jexus是挺简便的一件事,但是安装mono就相对 ...

  3. 腾讯混合云存储 TStor 系列再添新成员,并行存储一体机正式发布

    最近国内某大型互联网公司依靠其数据优势成功上市,可见数据的重要性,而数据和存储密不可分,您真的知道自己需要更高性能存储吗? 在当今数据爆发式增长的时代,数据已经成为很多行业最重要的资源,没有之一. 数 ...

  4. Asp.Net跨平台:Ubuntu14.0+Mono+Jexus+Asp.Net

    Asp.Net跨平台的文章园子里有很多,这里给自己搭建的情况做一下总结,方便以后查看. 参考网站:   http://www.linuxdot.net/(Linux DotNET大本营 )  http ...

  5. Jexus 网站服务器和 ASP.NET 跨平台开发

    微软的跨平台战略 微软在过去的一年多中时间中发生了令整个 IT 行业感到惊叹的变化.这一切始于 Ballmer 的退位和 Nadella 的决心,更始于早已在微软各个基层部门蠢蠢欲动的二次创业. 以开 ...

  6. 从ASP.NET 升级到ASP.NET5(RC1) - 翻译

    前言 ASP.NET 5 是一次令人惊叹的对于ASP.NET的创新革命. 他将构建目标瞄准了 .NET Core CLR, 同时ASP.NET又是对于云服务进行优化,并且是跨平台的框架.很多文章已经称 ...

  7. ASP.NET跨平台最佳实践

    前言 八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营.有过短暂的失落和迷茫,但技术转型真的没有想象中那么难.回头审视,其实单从语言本身来看,C#确实比Java ...

  8. ASP.NET5 Beta8可用性

    ASP.NET5 beta8现已上都的NuGet作为一个工具升级到Visual Studio2015!此版本极大地扩展.NET核心对OS X和Linux所支持的范围.您现在可以使用网络,加密和全球化特 ...

  9. ASP.NET5中间件

    小的应用组件可以包含到Http请求管道当中,ASP.NET5 集成了中间件,被包在了应用程序的Configure方法当中. 1. 什么是中间件 中间件是一组被装到应用程序管道的请求和响应中的组件.每一 ...

随机推荐

  1. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

  2. div实现自适应高度的textarea,实现angular双向绑定

    相信不少同学模拟过腾讯的QQ做一个聊天应用,至少我是其中一个. 过程中我遇到的一个问题就是QQ输入框,自适应高度,最高高度为3row. 如果你也像我一样打算使用textarea,那么很抱歉,你一开始就 ...

  3. Python应用03 使用PyQT制作视频播放器

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载. 最近研究了Python的两个GUI包,Tkinter和PyQT.这两个GUI包的底层分别是Tcl/ ...

  4. 免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)

    在生活中有一种东西几乎已经快要成为我们的另一个电子”身份证“,那就是二维码.无论是在软件开发的过程中,还是在普通用户的日常中,几乎都离不开二维码.二维码 (dimensional barcode) , ...

  5. 来自于微信小程序的一封简讯

    9月21晚间,微信向部分公众号发出公众平台-微信应用号(小程序)的内测邀请,向来较为低调的微信在这一晚没人再忽视它了. 来自个人博客:Damonare的个人博客 一夜之间火了的微信应用号你真的知道吗? ...

  6. VS2015常用快捷键总结

    生成解决方案 F6,生成项目Shift+F6 调试执行F5,终止调试执行Shift+F5 执行调试Ctrl+F5 查找下一个F3,查找上一个Shift+F3 附加到进程Ctrl+Alt+P,逐过程F1 ...

  7. 推荐一个ASP.NET网站内容管理系统源码

    许多人都有各自的兴趣,如打球.踢毽子.看书.看电视.玩游戏等等....我近来迷上了猜灯谜,于是业余做了一个在线猜灯谜的网站:何问起谜语. 先出个谜语让你猜猜:不可缺一点(打一字).可以在线猜:http ...

  8. 信息安全-1:python之playfair密码算法详解[原创]

    转发注明出处: http://www.cnblogs.com/0zcl/p/6105825.html 一.基本概念 古典密码是基于字符替换的密码.加密技术有:Caesar(恺撒)密码.Vigenere ...

  9. maven打包插件:appassembler

    1.打包成bat 打包命令:mvn clean package appassembler:assemble <plugin> <groupId>org.codehaus.moj ...

  10. [PHP源码阅读]array_push和array_unshift函数

    在PHP中,在数组中添加元素也是一种很常用的操作,分别有在数组尾部和头部添加元素,看看PHP内部是如何实现数组插入的操作. 我在github有对PHP源码更详细的注解.感兴趣的可以围观一下,给个sta ...