使用 Kestrel 自托管部署到Linux.

需要先安装.netcore 的运行环境到Linux.

安装.netcore 环境.

依次输入下列命令,安装速度根据网络状况,大概装了快一小时。

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm  
sudo yum update
sudo yum install dotnet-sdk-3.1 //应该可以直接安装runtime 运行时,已经安装了算了.

成功后检测

dotnet --info

 

 

编译项目

记得选择FrameworkDependent,这样发布后项目很小,大概9M。如果自托管的话可能上百兆了。

 

上传文件到Linux服务器

利用 MobaXterm 左侧的文件目录

通过命令把项目跑起来

 程序是启动了,但是Ctrl +C 后退出程序或者关闭shell 后又访问不了,怎么把进程放在后台常驻运行呢?

创建常驻服务 

cd /etc/systemd/system
vi kestrel-Forestry.service

通过命令创建一个文件,内容如下。

[Unit]
Description=Example .NET Web Site running on Centos

[Service]
WorkingDirectory=/home/WebApi
ExecStart=/usr/bin/dotnet DL.Forestry.WebApi.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

 

 上图是通过可视化工具创建,也可以。

注册新创建的服务

// 注册服务
sudo systemctl enable kestrel-Forestry.service
// 启动服务
sudo systemctl start kestrel-Forestry.service

验证后台进程

//查端口
netstat -nlp|grep 8080
//查服务名
ps -ef | grep Forestry

 

 

 

posted @ 2021-01-11 22:42  LearningAlbum  阅读(654)  评论(0)    收藏  举报