ASP.NET Core "完整发布,自带运行时" 到jexus

一、阅读前须知

  1.使用 jexus整合asp.net core的优点:

      1)支持多站点,同一端口可以同时支持任何多的asp.net core应用程序;
      2)应用程序启动、停止、重启与站点的启动、停止、重启等操作一致,无需手工管理asp.net core应用程序;
      3)具有应用程序崩溃后自动重启功能,为企业级不间断运行保障;
      4)具有比反向代理更高的性能优势。

  

      5)提供与IIS相同的HTTP环境参数。

  2.本文属于"完整发布",不经过Visual Studio2015 Update3发布,并且自带运行时的发布过程

  3.不需要在Linux下安装.Net Core SDK

二、手动发布步骤

  1.使用VisualStudio2015 Update3新建 ASP.NET Core应用程序

ASP.NET Core "完整发布,自带运行时" 到jexus

2.找到工程根目录下 "project.json"

2.1 禁用 "type"

ASP.NET Core "完整发布,自带运行时" 到jexus

2.2 注释 "scripts"节点

ASP.NET Core "完整发布,自带运行时" 到jexus

2.3 添加 "runtimes"节点,centos7.1服务器

ASP.NET Core "完整发布,自带运行时" 到jexus

2.4 CMD进入工程根目录

cd /d 工程目录

2.5  还原包

dotnet restore

2.6 发布

dotnet publish -r centos.-x64

ASP.NET Core "完整发布,自带运行时" 到jexus

2.7  预览手动发布后的目录

\bin\Debug\netcoreapp1.\centos.-x64\publish

ASP.NET Core "完整发布,自带运行时" 到jexus

三、整合为Jexus站点,作为jexus进程后台运行

3.1  安装jexus5.8.2

cd /tmp
wget linuxdot.net/down/jexus-5.8.-x64.tar.gz
tar zxvf jexus-5.8.-x64.tar.gz
cd jexus/
cd siteconf/
vi default

3.2 添加AppHost

ASP.NET Core "完整发布,自带运行时" 到jexus

 (jexus作者介绍AppHost)

  AppHost的配置格式是:
  AppHost={CmdLine=应用程序命令行; workRoot=应用程序工作目录; Port=应用程序HTTP侦听端口},其中:
 "CmdLine" 表示启动应用程序的命令行,如:dotnet /var/www/site1/app.dll;
 "workRoot"表示应用程序工作目录,如:/var/www/site1;
 "Port"表示这个HTTP应用程序所使用的侦听端口,如:5000(Asp.Core默认端口是5000)。

3.3 将发布的程序拷贝到服务器(\bin\Debug\netcoreapp1.0\centos.7-x64\publish\),本人用的是WinSCP

3.4 配置执行权限(重点)

ASP.NET Core "完整发布,自带运行时" 到jexus

cd /var/www/default
sudo chmod a+x CoreApp
ls

授权后:

ASP.NET Core "完整发布,自带运行时" 到jexus

3.5 试运行自宿主工作情况

cd /var/www/default
dotnet CoreApp.dll

ASP.NET Core "完整发布,自带运行时" 到jexus

 为什么在jexus正式管控它之前要手工试试?
  1)确保应用可以成功开启

  2)减少排错步骤

  3)确认端口号

3.6 启动jexus

 cd ../
./jws start

3.7 观察asp.net core 端口情况

sudo netstat -lntp

ASP.NET Core "完整发布,自带运行时" 到jexus

3.8 到此一个带运行时的发布就完成了,测试下是OK的(访问端口:80,由jexus完成端口转发到5000)

ASP.NET Core "完整发布,自带运行时" 到jexus

四、交流学习

.NET Core & OWIN交流群:199281001

linuxdot.net交流群:102732979

上一篇:图解nginx配置负载均衡


下一篇:nginx配置 负载均衡