如何在centos7中部署Net6.0程序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在centos7中部署Net6.0程序?相关的知识,希望对你有一定的参考价值。
参考技术A 1.首先在linux中安装Net6.0运行时,安装5.0只需要降6.0替换为5.0添加仓储指令
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
执行安装命令:
a.如果不需要在linux上编译源码
sudo yum install dotnet-runtime-6.0
b.如果需要在linux上编译源码
sudo yum install dotnet-sdk-6.0
c.如果是有webapi接口或者网页
sudo install aspnetcore-runtime-6.0
安装完成后输入指令
dotnet --info 查看是否安装正确
2.发布net6.0程序
a.直接vs上面右键项目发布,选择文件夹发布,然后一路下一步。
b.上一步是生成了发布配置文件,此时界面会出现一个发布按钮,点击后才是真正发布
3.将2发布的文件全部复制到linux目录/home/dotnetuser/下。
此处我是创建了一个dotnetuser用户,然后自动生成的dotnetuser文件夹,其实不用创建用户也可以。
创建用户指令
sudo useradd -s /sbin/nologin dotnetuser
删除用户指令-r参数表示删除相关联的文件夹等
sudo userdel -r dotnetuser
4.测试一下程序是否能够运行,假设我们的程序名称为 DEmo.dll
进入/home/dotnetuser/
cd /home/dotnetuser/
输入指令(注意大小写,linux大小写敏感,此处我故意使用了DEmo)
dotnet DEmo.dll
运行正常就可以进行下一步,配置守护程序。
5.使用systemd守护程序,保证每次系统启动自动启动服务
在目录/home/dotnetuser/(不一定非得此目录)下创建文件demoService
文件内容如下
[Unit]
Description=demoservice
[Service]
ExecStart=dotnet /home/dotnetuser/DEmo.dll
ExecStart=/home/dotnetuser/
User=dotnetuser
Group=dotnetuser
Restart=on-failure
SyslogIdentifier=demoservice
PrivateTmp=true
[Install]
WantedBy=multi-user.target
此处特别注意:
在net5.0中这样就行:ExecStart=dotnet /home/dotnetuser/DEmo.dll
在net6.0中得输入全路径:ExecStart=/usr/share/dotnet/dotnet /home/dotnetuser/DEmo.dll
ExecStart= ExecStart= User= Group=这几项根据实际情况填写
在demoService文件所在同一目录(此处是/home/dotnetuser/)输入指令完成配置
systemctl enable /home/dotnetuser/demoService
6.查看程序是否运行正常active绿色正常,其他未正常运行
查看服务状态指令
systemctl status demoService
7.其他指令
停止服务指令
systemctl stop demoService
开始服务指令
systemctl start demoService
Centos7中部署Net6.0程序
一、第一种方法
添加仓储指令
rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
执⾏安装命令:
1、如果不需要在linux上编译源码
yum install dotnet-runtime-6.0
2、如果需要在linux上编译源码
yum install dotnet-sdk-6.0
3、如果是有webapi接⼝或者⽹页
yum install aspnetcore-runtime-6.0
安装完成后输⼊指令
dotnet --info 查看是否安装正确
Centos7中安装Net5.0运⾏时,只需要把6.0替换为5.0
二、第二种方法
去微软官网找到下载链接Download .NET 6.0 (Linux, macOS, and Windows)https://dotnet.microsoft.com/en-us/download/dotnet/6.0
sudo mkdir dotnet
sudo tar zxvf dotnet-sdk-6.0.101-linux-x64.tar.gz -C dotnet
修改环境变量
vi /etc/profile
在文件尾部添加
export PATH=$PATH:/data/dotnet
export DOTNET_ROOT=/data/dotnet
测试dotnet --info
三、程序需改
判断运行环境是不是windows
bool isWindows = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
string filePath = string.Empty;
if (isWindows)
filePath = "c:/" + name;
else
filePath = "/" + name;
四、运行程序
dotnet 程序名.dll
出现以下信息,是因为没有装aspnetcore的运行时,运行yum install aspnetcore-runtime-6.0即可
It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '6.0.0' (x64) was not found.
- No frameworks were found.
You can resolve the problem by installing the specified framework and/or SDK.
The specified framework can be found at:
- https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=6.0.0&arch=x64&rid=centos.7-x64
以上是关于如何在centos7中部署Net6.0程序?的主要内容,如果未能解决你的问题,请参考以下文章