.NET Core项目部署到Linux(Centos7)(六)发布.NET Core 项目到Linux

目录

1.前言

2.环境和软件的准备

3.建立.NET Core API项目

4.VMware Workstation虚拟机及Centos 7安装

5.Centos 7安装.NET Core环境

6.发布.NET Core项目到Linux

7.启动和中止.NET Core项目

8.为.NET Core项目建立Supervisor进程守护监

9.防火墙配置,容许外网或局域网访问.NET Core站点

10.总结

 

1.打开.NET Core项目,右键发布项目,选取发布目标,文件夹模式,建立配置文件

 

 

 

 

注意这里使用的是框架依赖部署模式,由于以前咱们已经安装了.NET Core环境,这里就不使用独立部署模式了html

框架依赖部署:
依赖框架的部署 (FDD) 依赖目标系统上存在共享系统级版本的 .NET Core。 因为已存在 .NET Core,所以应用在 .NET Core 安装程序间也是可移植的。 应用仅包含其本身的代码和任何位于 .NET Core 库外的第三方依赖项。 FDD 包含可经过在命令行中使用 dotnet 实用程序启动的 .dll 文件。 例如,dotnet app.dll 就能够运行一个名为 app 的应用程序。
对于 FDD,仅部署应用程序和第三方依赖项。 不须要部署 .NET Core,由于应用将使用目标系统上存在的 .NET Core 版本。 这是定目标到 .NET Core 的 .NET Core 和 ASP.NET Core 应用程序的默认部署模型shell

优势:
①、不须要提早定义 .NET Core 应用将在其上运行的目标操做系统。 由于不管什么操做系统,.NET Core 的可执行文件和库都是用通用的 PE 文件格式,所以,不管什么基础操做系统,.NET Core 均可执行应用。
②、部署包很小。 只需部署应用及其依赖项,而无需部署 .NET Core 自己。
③、许多应用均可使用相同的 .NET Core 安装,从而下降了主机系统上磁盘空间和内存使用量。服务器

缺点:
①、仅当主机系统上已安装你设为目标的 .NET Core 版本或更高版本时,应用才能运行。
②、若是不了解未来版本,.NET Core 运行时和库可能发生更改。 在极少数状况下,这可能会更改应用的行为。app

独立部署:
独立部署 (SCD) 不依赖目标系统上存在的共享组件。 全部组件(包括 .NET Core 库和 .NET Core 运行时)都包含在应用程序中,而且独立于其余 .NET Core 应用程序。 SCD 包括一个可执行文件(如 Windows 平台上名为 app 的应用程序的 app.exe),它是特定于平台的 .NET Core 主机的重命名版本,还包括一个 .dll 文件(如 app.dll),而它是实际的应用程序。
对于独立部署,能够部署应用和所需的第三方依赖项以及生成应用所使用的 .NET Core 版本。 建立 SCD 不包括各类平台上的 .NET Core 本机依赖项,所以运行应用前这些依赖项必须已存在框架

优势:
①、能够对与应用一块儿部署的 .NET Core 版本具备单独的控制权
②、目标系统能够运行你的 .NET Core 应用,由于你提供的是应用将在其上运行的 .NET Core 版本curl

缺点:
①、因为 .NET Core 包含在部署包中,所以必须提早选择为其生成部署包的目标平台
②、部署包相对较大,由于须要将 .NET Core 和应用及其第三方依赖项包括在内。
③、向系统部署大量独立的 .NET Core 应用可能会使用大量磁盘空间,由于每一个应用都会复制 .NET Core 文件测试

 

2.发布项目

 

 

3.查看Linux的IP信息,根据IP信息,新建Xshell会话,链接,输入Linux的帐户及密码

 

#查看本机IP信息
ifconfig -a

 

 

 

4.先安装lrzsz,而后使用Xshell上传发布好的项目到Linux服务器

 

#安装lrzsz
sudo yum -y install lrzsz

#检查是否安装lrzsz
rpm -qa lrzsz

 

 

这里把文件上传到/var/www文件夹下,因此咱们用命令进到www目录下url

 

#进入www目录
cd /var/www

#查看www目录下的文件
ls

 

在www当前目录,使用lrzsz的rz命令上传.NET Core项目,这里注意要使用sudo或者su去执行,否则会出现文件上传失败spa

 

#使用rz命令上传,选择要上传的文件
sudo rz

#查看www目录下的文件
ls

 

 

 

5.发布含有文件夹的.NET Core项目

 

 

 

如上图,包含了config文件夹,按照步骤4,只能先执行建立mkdir config,而后在进入config目录上传里面的文件操作系统

这里提供另一种方法,首先在7-Zip(https://www.7-zip.org/)下载压缩软件,安装好以后,把发布的项目压缩成tar

 

 

 

压缩好以后,咱们在Xshell执行如下命令进行上传,解压等操做

 

#进入www站点目录
cd /var/www

#rz,选择压缩好的publish.tar
sudo rz

#解压缩文件
sudo tar xvf publish.tar

#删除压缩文件
sudo rm -f publish.tar

#测试站点
curl http://localhost/weatherforecast