Linux环境下部署教程

 

方式一:发布独立项目

运行方式:

[root@iZmtbm0yxr88hrZ simpleDemo]# ./PingTech.API

方式二:发布依赖框架项目

安装依赖

  • 1、下载依赖包:aspnetcore-runtime

下载地址:https://dotnet.microsoft.com/download/dotnet-core/3.1

选择对应平台,如Windows 64有开发需求下载SDK,只是运行安装runtime

本次使用运行时版本为:aspnetcore-runtime-3.1.3-linux-x64.tar.gz

  • 2、将安装包拷贝到Linux特定目录下

本次使用目录为:/home/softwarePackages/

  • 3、新建文件夹:
   [root@localhost softwarePackages]# mkdir /home/softwarePackages/dotnet
  • 4、/home/softwarePackages目录下解压运行时到指定文件夹dotnet:
   [root@localhost softwarePackages]# tar -zxf aspnetcore-runtime-3.1.3-linux-x64.tar.gz -C dotnet

参考:Linux下解压安装

  • 5、配置环境变量

在/etc/profile文件末尾加上两行配置项:

export DOTNET_ROOT=/home/softwarePackages/dotnet
export PATH=$DOTNET_ROOT:$PATH

执行 source /etc/profile 使改动生效:

[root@localhost simpleDemo]# source /etc/profile

运行方式:

[root@localhost simpleDemo]# dotnet PingTech.API.dll

后台任务运行方式:

[root@localhost simpleDemo]# dotnet PingTech.API.dll &

测试访问网址:curl http://127.0.0.1:5000/weatherforecast

查看进程:

lsof -i:端口号 ps -ef|grep 进程名称

关闭进程:

kill -s 9 进程ID(PID)

QA

  • 问题:软件执行时异常提示

    -bash: ./PingTech.API: Permission denied(无权限)
    解决方法:
    chmod u+rwx PingTech.API (添加权限)
    参考:
    Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)

  • 问题:运行后异常提示

    Process terminated. Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
    解决方法:
    项目中新建文件:runtimeconfig.template.json,重新发布
    runtimeconfig.template.json文件内容:

    {
    	"configProperties": 
    	{
    		"System.Globalization.Invariant": true
    	}
    }
    
  • 问题:软件运行后只能本机访问

    解决方式一:项目文件appsetting.json文件中添加配置项urls,重新发布

    "urls": "http://*:5000;"
    

    解决方式二:软件运行时添加--urls参数,如:dotnet PingTech.API.dll --urls=http://*:5000 &

进程守护及开机自启动

新建服务service

在指定目录中新建(.service)文件: /etc/systemd/system/WebApiDemo.service

文件内容:

[Unit] 
Description=WebApiDemo
DefaultDependencies=no

[Service] 
Type=simple
RemainAfterExit=no
ExecStart=/home/softwarePackages/dotnet/dotnet PingTech.API.dll --urls=http://*:5000
WorkingDirectory=/home/publish/simpleDemo/framework-dependent
Restart=on-failure
RestartSec=10
KillMode=process 

[Install]
WantedBy=multi-user.target

说明: ExecStart #dotnet路径 + 执行命令,命令后面不能带空格
WorkingDirectory #软件部署路径

开机自启

设置开机自启动
[root@localhost ~]# systemctl enable WebApiDemo.service

停止开机自启动
[root@localhost ~]# systemctl disable WebApiDemo.service

验证一下是否为开机启动
[root@localhost ~]# systemctl is-enabled WebApiDemo

启动服务
[root@localhost ~]# systemctl start WebApiDemo.service

停止服务
[root@localhost ~]# systemctl stop WebApiDemo.service

重启服务
[root@localhost ~]# systemctl restart WebApiDemo.service

查看服务当前状态
[root@localhost ~]# systemctl status WebApiDemo.service

查看所有已启动的服务
[root@localhost ~]# systemctl list-units --type=service

重载服务
[root@localhost ~]# systemctl daemon-reload

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值