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 &