首页 > 教程 > 在CentOS 7上部署WebAPI项目的详细步骤

在CentOS 7上部署WebAPI项目的详细步骤

时间:2024-08-31 | 来源: | 阅读:146

话题: a T Net Pi API 项目 S C in linux

本文先安装 .net 5.0 的环境,再创建一个示例项目并发布至 CentOS 上,同时列明了一些注意的点;最后将 dotnet 命令添加到系统自启动服务。

本文将详细介绍在CentOS 7上部署WebAPI项目的过程。首先,我们会介绍如何在CentOS 7上安装.net 5.0环境,然后创建示例项目并将其发布至CentOS服务器。最后,我们将讨论如何将dotnet命令添加到系统自启动服务。

〇、前言

本文主要介绍了在 CentOS 7 上部署 WebAPI 项目的过程。先安装 .net 5.0 的环境,再创建一个示例项目并发布至 CentOS 上,同时列明了一些注意的点;最后将 dotnet 命令添加到系统自启动服务。

一、Linux 环境准备

1.1 CentOS 7.x 在线安装 .net 5.0

首先,配置仓库:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-5.0 -y
sudo dnf install dotnet-runtime-5.0 -y
# 使用 dnf 命令时,会出现报错【sudo: dnf: command not found】
# 这个错误表明你的系统中没有安装 dnf 包管理器,可以手动安装 dnf 的支持:sudo yum install dnf

1.2 CentOS 8.x 在线安装 .net 5.0

直接执行命令:

sudo dnf install dotnet-sdk-5.0

1.3 查看是否安装成功

查看当前版本:dotnet --version;查看详情:dotnet --info。

[root@localhost ~]# dotnet --info
.NET SDK (reflecting any global.json):
 Version:   5.0.408
 Commit:    da985e2a23
...

二、示例项目创建和发布

2.1 创建一个测试项目

下面简单创建一个测试项目:WebAPI.WebApplication.Test。

选项(Enable OpenAPI support)选中,默认添加对 swagger 框架的支持。

直接运行起来,看下目标效果:

2.2 发布步骤

选择发布至文件系统:

然后找到发布文件夹:(需要将此文件夹中的文件全部上传至 CentOS 服务器)

WebAPI.WebApplication.Test\bin\Release\net5.0\publish

上传至 CentOS 的 /home/webapi.test 文件夹中,备用。(上传方法就略过了)

三、服务开启和配置自启动

3.1 服务开启

首先,在 Startup.cs 文件中将 Swagger 的配置放出来:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    // 如下两行,原来在 if 里边,放到外边,就无论是什么环境都可加载 Swagger
    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAPI.WebApplication.Test v1"));
...

另外,文件 launchSettings.json,注意如下备注的两个配置项:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:25863",
      "sslPort": 0
    }
  },
...

使用 dotnet 命令直接开启服务试试:

 dotnet /home/webapi.test/WebAPI.WebApplication.Test.dll -server.urls "http://*:5000" --environment Development

3.2 将服务配置为系统自启动

在 /etc/systemd/system/ 路径下,新增一个 webapi.test.service 文件,文件内容如下:

# Unit 文件描述,webapi 为服务文件名
[Unit]
Description=weapi.test service
...

操作服务的相关命令:

# 启动
systemctl start xxx.service
# 查看当前状态
systemctl status xxx.service
# 重新启动
systemctl restart xxx.service
# 查看所有已启动的服务
systemctl list-units --type=service
...

最后,可以执行 reboot 命令,重启服务器后,对服务进行验证。

参考: https://blog.51cto.com/u_15050718/4565015


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网