如何在Linux中部署Asp.Net Core Web API应用

一、前言

.Net Core是一个开源的、跨平台和高性能的开发平台,其生态丰富,包含了运行时、库、编译器、框架和集成开发环境。相比.Net Framework,其完全开源,跨平台,性能更高,可独立部署,内置依赖注入,支持Docker。

ASP.Net Core是基于.Net Core的Web开发框架,用于构建Web应用。ASP.Net Core Web API是基于ASP.Net Core的Web API解决方案,其遵循RESTful设计,支持微服务架构。

二、官网

在Linux上安装.NET: https://learn.microsoft.com/zh-cn/dotnet/core/install/linux

下载.NET: https://dotnet.microsoft.com/zh-cn/download/dotnet

三、部署服务

Asp.Net Core提供了多种服务发布方式,有AzureDocker文件夹等方式等,如下图所以:
在这里插入图片描述

 3.1、文件夹

 将程序生成到一个文件夹中,Linux服务器中配置到运行时,即可运行程序。

  3.1.1、安装Asp.Net Core环境
   3.1.1.1、离线安装
    3.1.1.1.1、下载ASP.NET CORE运行时

  在.NET下载的官网选择所需要的版本。我这里选择6.0版本,需要在不再支持的版本中选择。
在这里插入图片描述
    进入之后,发现.NET6.0中也有各个版本,因为是生产环境,所以选择运行时即可,不用选择SDK(软件开发工具)。又因为是运行web应用,所以安装ASP.NET CORE运行时即可。选择Linux => 二进制文件,这里又分很多版本,需要看Linux服务器中的CPU架构,然后再选择版本。
在这里插入图片描述

    再Linux服务器中输入uname -a命令,返回结果x86_64,所以选择x64下载。
在这里插入图片描述

    3.1.1.1.2、解压缩并配置环境变量

    下载完成后,将压缩包拷贝到LInux服务器/opt/dotnet目录中,然后执行下面的命令。

# 解压 当前位于/opt/dotnet目录中
tar -xzf aspnetcore-runtime-6.0.36-linux-x64.tar -C ./

#配置环境变量
echo 'export DOTNET_ROOT=/opt/dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:/opt/dotnet' >> ~/.bashrc
source ~/.bashrc
    3.1.1.1.3、验证安装

    检查ASP.NET CORE是否安装成功,输入命令后能看到信息,则表示安装成功。

# 查看dotnet信息
dotnet --info

在这里插入图片描述

   3.1.1.2、在线安装
    3.1.1.2.1、添加 Microsoft 服务器密钥和软件仓库
  • 安装必要的依赖
# 用dnf安装
sudo dnf install -y dotnet-host
# 如果 dnf 不支持,可以使用 yum:
sudo yum install -y dotnet-host

  • 添加 Microsoft 服务器 GPG 密钥
sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
    3.1.1.2.2、安装 .NET Core 运行时
sudo dnf install -y aspnetcore-runtime-6.0
    3.1.1.2.3、验证安装
dotnet --info

在这里插入图片描述

  3.1.2、运行Web服务
   3.1.2.1、发布服务

   在Asp.Net Core项目中以文件夹形式发布程序。
在这里插入图片描述

   3.1.2.2、解压缩

   将publish文件夹压缩并拷贝到Linux中创建的opt/文件夹中(我的压缩包名字是WebApp.tar)。
在这里插入图片描述
   解压文件。

tar -xvf WebApp.tar

   解压后如下图所示:
在这里插入图片描述

   3.1.2.3、运行服务

   启动服务。

# 启动服务(对话框启动,非后台启动)
dotnet WebApp.dll --urls="http://*:5000"

# 启动服务(后台启动)
nohup dotnet YourApp.dll --urls="http://*:5000" > app.log 2>&1 &

   启动服务状态如下图所示:
在这里插入图片描述

 3.2、Docker镜像

四、可能碰到的一些问题

 4.1、Couldn‘t find a valid ICU package

 报错:“Couldn‘t find a valid ICU package installed on the system. Set the configuration flag System.”
Linux上运行一些程序时回报Couldn’t find a valid ICU package installed on the system. 错。

 报错:解决方法:

# 一般就可以了
yum install libicu

# 如果还不行,再安装:
yum -y install libicu-devel
yum install libunwin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值