ASP.NET Linux部署(2)

  • 时间:
  • 浏览:2
  • 来源:大发3D_大发3D官网

http://www.linuxdot.net/bbsfile-30084

首先,在VS 2103中建立一另有一个多多多 Class Library项目,注意倘若Library项目,这不都也能选者 Framework 4.5.2肯能4.5.1. 你这名项目假设命名为OwinExample.

注意linuxserverip为部署服务器的IP, 88为你要们再Jexus配置中设置的端口, api/default/hello对应你要们WebApi的路径映射,Controller类名和最好的方法名.

2个要点:

就这八个方案而言,我并非 各有利弊: 底层方案也能更多的自行选者 和组装,否则与任何基于Owin的组件搭配自如; 三方方案面临生态环境的难题,肯能大每段高端的组件都来自MS,也能真正无缝连接也能考验,自身的生存能力也是难题; 正统方案内容完整篇 ,支持强大, 与MS各项技术融合度高,但却面临性性心智性成熟是什么是什么是什么是什么期 图片 图片 周期难题(时不我待),另外我最不爽的有些是,vNext又一次搞成了铁索连环船, 连WebApi都和MVC融合了,又给人五种整套推销的感觉, 有违当初Owin体系的初衷;而最根本的难题是,目前还没法任何方案给vNext提供一另有一个多多多 Linux上的IIS级服务器,没法好的载体,仅仅是把vNext的Linux部署定义为娱乐你这名显然看没了太满的诚意.

综上,我目前还是倾向于使用底层Owin方案,目前商业化开发路线是: 基于MS Owin实现,根据也能加入各种MS稳定组件,比如Web API 2.2 OWIN 5.2.3, Identity Owin 2.2.1, SignalR OWIN 1.2.2, OAuth 3.0.1,和有些所有的通用型组件,如EF, Logging, IoC等等; 最终通过Mono和 Jexus架设到Linux环境.

NancyFx

Mono

建立DefaultController.cs 为一另有一个多多多 默认的WebApi,顶端中有 一另有一个多多多 最简单的Hello函数.

ASP.NET WebApi

你这名方案的最终意义在于,结合目前.NET和Linux方向上最具备稳定性和代表性的MONO, MS Owin和 Jexus, 在ASP.NET vNext最终能完美部署到Linux却说,这是最接近于商业生产环境的方案之一.

你要要们安装Jexus最新版本. (同样请参考下面的超链)

Jexus 即 Jexus Web Server,简称JWS,是Linux平台上的一款ASP.NET WEB服务器,是目前唯一也能支持企业级ASP.NET Linux部署的五种方案(有些的服务器方案无类事 定位).

自此你要们的基于MS Owin和WebApi的迷你版应用开发完成,改为Release模式编译,你要们也能得到如下图所示的一系列DLL:

RESTful

OWIN

Linux

开发环境VS 2013, Window 7或 8; 部署环境Ubuntu 15.

最后还是说下你要们你这名模式的优势,劣势和意义:

就.NET路线的Web开发来看,不管何种最好的方法,未来必然是基于OWIN开发的事实肯能不可动摇了; 在你这名基础上, 我认为目前在Linux上开发并部署.NET Web程序有八个路线也能选者 :

这里首先声明有些,ASP.NET Linux部署系列仅针对Linux部署环境,不涉及Windows部署环境.下面还是先给出有些概念以便于你要们更好的理解后续的内容.

mono是指由Novell公司(由Xamarin发起,并由Miguel de lcaza领导的,一另有一个多多多 致力于开创.NET在Linux上使用的开源工程. 就目前而言,在Linux上的.NET应用还也能基于Mono来运行.

微软开发的基于OWIN规范的底层实现,最新版本是3.0.1,其主项目名称为Kanata

http://www.linuxdot.net/bbsfile-30090

 下面说下你要们的特殊部署步骤 (具体Linux命令你要不列举了):

否则,你要们加入你这名项目也能的组件,根据顶端的描述,你要们也能另有一个多多多 组件: MS Owin的核心实现Microsoft Owin和ASP.NET WebApi 2.2 Owin

其重要内容应该包括以下设置:

MS Owin

OWIN在.NET Web Servers与Web Application之间定义了一套标准接口,OWIN的目标是用于解耦Web Server和Web Application。基于此标准,鼓励开发者开发简单、灵活的模块,从而推进.NET Web Development开源生态系统的发展。

首先,Owin的传统入口类登场:  Startup.cs

下面我建一步演示如保组装MS Owin和Web API 2.2, 并把它们部署到Jexus上去.

ASP.NET MVC 4 中有 了 ASP.NET Web API, 这是一另有一个多多多 创建也能连接包括浏览器、移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RESTful 服务的理想平台

这里先声明下,基于被委托人的能力所限,也能先给出Ubuntu最新版本的一另有一个多多多 部署方案,使用有些版本Linux的兄弟也能麻烦你要们自寻门路了.

 

五种软件架构风格,设计风格而也有标准,却说提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于你这名风格设计的软件也能更简洁,更有层次,更易于实现缓存等机制。

Nancy 是一另有一个多多多 基于 .NET 和 Mono 平台用于构建轻量级基于 HTTP 的 Web 服务。基于 .NET 和 Mono 平台,框架的目标是保持尽肯能多的最好的方法,并提供一另有一个多多多 super-duper-happy-path所有交互。官方网站 http://nancyfx.org/

优势: 基于Owin底层,简单明了稳定,也能融合任何基于Owin的相关技术,扩展性强,也能和Mono, Jexus完美结合,性能最高.

为了把项目部署到Jexus上去,你要们还也能一另有一个多多多 非常简单的适配器类,在项目中加入你这名类却说,就能无缝部署到Jexus服务器上去了, 你要们把你这名代码命名为Adapter.cs:

 

部署Jexus网站的常规指导信息,你要们也能移步这里:

另外, Web.Config文件和有些任何文件在你这名构架顶端也有也能的.

l  Startup和Configuration的命名不倘若固定的,却说预定俗成而已.

首先,你要们再Ubuntu顶端安装Mono最新版本. 也能参考下面超链文章的指引:

ASP.NET

 

ASP.NET是.NET Framework的一每段,是一项微软公司的技术,是五种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术, 本月即将发布的最新版本是版本5,又成为vNext.

 

# For owinexample

 最后拖一句,你这名方案的开发环境也能考虑用TinyFox肯能MS Owin Self Host来做宿主. 都也能无缝连接,代码不也能修改.

否则加入ASP.NET WebApi 2.2 Owin

劣势: 共要自行组建构架,搭建工作量大, 肯能目前没法独立的MVC组件,在MVC开发方面严重不足支持(Nancy的一每段MVC构架比如Razor引擎也能独立移入,但你这名方案有待验证).

http://www.linuxdot.net/bbsfile-330000

Linux是一套免费使用和自由传播的类Unix操作系统,是一另有一个多多多 基于POSIX和UNIX的多用户、多任务、支持多程序和多CPU的操作系统. 本文中的Linux主要以Ubuntu作为样例.

Jexus

特别强调的是OwinMain你这名必需配置,否则也能对应正确的DLL文件名和Apdater类. 根据前面的描述,你要们也能知道你要们应用的配置应该是OwinExample.dll, OwinExample.Adapter.

也有有哪些DLL就能形成一另有一个多多多 WebApi应用吗?事实却说没法,否则你这名应用能很好的部署到Linux环境上去.

本文承接我的上一篇博文: ASP.NET 5 Linux部署,那篇文章主却说针对最新的ASP.NET 5的,但在却说的研究中,我对你这名娱乐型的部署依然也有非常满意,当然其主要原因分析是肯能ASP.NET 5 依然占据 RC版本,太满十分性性心智性成熟是什么是什么是什么是什么期 图片 图片 . 但也能预见到的是,就算本月ASP.NET 5 RTM版本如期推出,其在Linux顶端的开发和部署前景依然也有非常明朗: 特别令人困惑的是,MS在Linux上至今仅仅推出了2个以开发为目的的简单服务器实现,难以在其计划中寻觅到类事 IIS的完整篇 部署环境,没法所谓的ASP.NET 5的跨平台开发是是不是也能听候在实验室水平? 目前乃至今后很长一段时间内(直到ASP.NET 5完整篇 在Linux上站稳脚跟),你要们有没法更好的选者 ?下面我将给出我被委托人的想法.

你要们先加入Microsoft Owin

自此,简单的MS Owin + WebApi程序架设完毕. 在Owin体系下,你要们发现一切都变得非常简单和清晰.

 port=88

这里再次感谢Jexus作者宇内流云提供的代码, 出于对原作者的敬意你这名代码除了命名空间以外我一另有一个多多多 字母也没法改,并非 却说也能改. 并非 你要们也能看的出来,没法变态的注释应该也有我故意去写的.

root=/ /var/www/owinexample

原文:

l  WebApi的配置写法和MVC基本类事 .

OwinMain=OwinExample.dll,OwinExample.Adapter

l  Startup中的Configuration写成类成员最好的方法,而也有静态最好的方法,是为了和Jexus适配器配合,并非 差异不大.

hosts=*    # or  your.com,*.your.com