Linux 上发布.netcore

环境的准备

1.Windows环境

1).虚拟机:这里我用VMware

2).Linux:这里我用CentOS 7

3).文件传输工具:MobaXterm(用于windows发布文件上传到linux,很多人可能会用XShell,都可以的)

 

2.Linux环境

这个环境主要搭建asp.net core 的运行时环境(这里以.net6为例)

yum update
yum install net-tools

注册镜像地址
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

安装ASP.net Core SDK
sudo yum update
sudo yum install dotnet-sdk-6.0

关闭防火墙
systemctl disable firewalld

发布

1.新建解决方案

这里新建Hello0解决方案,发布后有人说看不到swagger,所以要把代码移出来。

 

 2.更改代码

发布到本地文件夹,这里需要注意:更改launchSettings.json文件将对应的localhost改成“*”。

 

 

 

3.获取Linux 的IP地址

虚拟机登录CentOS 输入命令获取IP地址

ip addr

然后通过MobaXterm登录Linux,准备上传发布包到Linux上进行发布。

 

 

 

4.通过MobaXterm上传发布包到Linux

VS发布后找到文件选择文件拖拽到MobaXterm中对应的文件夹,上传发布包文件到服务器

 

 5.运行需要发布的文件

输入命令行运行

dotnet Hello0.dll --urls=http://*:5225

 

这个时候打开windows浏览器发现访问不了。然而打开虚拟机中的浏览器发现可以浏览。最后发现重启linux。windos访问正常

 

 

 

6.发布遇到的问题

1).发布后第三方访问不了。

重启linux解决

2).运行后执行不了其他命令。

在之前的命令后加“&”

原来的命令

dotnet Hello0.dll --urls=http://*:5225

 

 

 现在命令后可以继续干其他的

dotnet Hello0.dll --urls=http://*:5225 &

这个可以做到发布后可以继续输入其他命令。

3).退出命令页后访问不了。

这里我们就可以通过守护进程解决这个问题

 所以最终的命令需要用到守护进程,关闭页面后仍然可以使用

nohup dotnet Hello0.dll --urls=http://*:5225 &

 

 

  

 

posted @ 2022-09-03 21:15  三个人的酱油  阅读(1268)  评论(2编辑  收藏  举报