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应用程序
2.找到工程根目录下 "project.json"
2.1 禁用 "type"
2.2 注释 "scripts"节点
2.3 添加 "runtimes"节点,centos7.1服务器
2.4 CMD进入工程根目录
cd /d 工程目录
2.5 还原包
dotnet restore
2.6 发布
dotnet publish -r centos.7-x64
2.7 预览手动发布后的目录
\bin\Debug\netcoreapp1.0\centos.7-x64\publish
三、整合为Jexus站点,作为jexus进程后台运行
3.1 安装jexus5.8.2
cd /tmp wget linuxdot.net/down/jexus-5.8.2-x64.tar.gz tar zxvf jexus-5.8.2-x64.tar.gz cd jexus/ cd siteconf/ vi default
3.2 添加AppHost
(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 配置执行权限(重点)
cd /var/www/default sudo chmod a+x CoreApp
ls
授权后:
3.5 试运行自宿主工作情况
cd /var/www/default dotnet CoreApp.dll
为什么在jexus正式管控它之前要手工试试?
1)确保应用可以成功开启
2)减少排错步骤
3)确认端口号
3.6 启动jexus
cd ../ ./jws start
3.7 观察asp.net core 端口情况
sudo netstat -lntp
3.8 到此一个带运行时的发布就完成了,测试下是OK的(访问端口:80,由jexus完成端口转发到5000)