首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

.Net 5.0 WebAPI 发布至 Linux 系统

编程知识
2024年08月30日 22:41

〇、前言

本文主要介绍了在 CentOS 7 上部署 WebAPI 项目的过程。

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

一、Linux 环境准备

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

第一行命令是添加包源,第二行命令是安装.Net Core版本的包
首先,配置仓库:
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

Runtime Environment:
 OS Name:     centos
 OS Version:  7
 OS Platform: Linux
 RID:         centos.7-x64
 Base Path:   /usr/share/dotnet/sdk/5.0.408/

Host (useful for support):
  Version: 5.0.17
  Commit:  6a98414363

.NET SDKs installed:
  5.0.408 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download
[root@localhost ~]#

二、示例项目创建和发布

2.1 创建一个测试项目

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

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

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

http://localhost:58268/swagger/index.html

http://localhost:58268/WeatherForecast

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"));

    app.UseRouting();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}       

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

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:25863",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WebAPI.WebApplication.Test": {
      "commandName": "Project",
      "dotnetRunMessages": "true",
      "launchBrowser": true,
      // 配置路径参数,示例:http://localhost:5000/swagger
      // 路径上要加上 swagger 才能访问
      "launchUrl": "swagger",
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        // 环境变量配置,服务启动时,必须加上对应的环境变量"Development"
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

使用 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

# Service 配置参数
[Service]
Type=simple
GuessMainPID=true

# 自启动项目所在的位置路径
WorkingDirectory=/home/webapi.test
StandardOutput=journal
StandardError=journal

# 自启动项目的命令
# 用 dotnet 启动,所以前面添加了 dotnet 的路径 /usr/bin/,后边就是 dotnet 命令的配置参数
ExecStart=/usr/bin/dotnet /home/webapi.test/myProject.Test.dll --Urls=http://*:5000
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target

操作服务的相关命令: 

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

# 设置开机自启动
systemctl enable xxx.service 
# 停止开机自启动
systemctl disable xxx.service

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

参考: https://blog.51cto.com/u_15050718/4565015   https://blog.csdn.net/u010476739/article/details/116710199     https://blog.csdn.net/Dominic_W/article/details/133277301                        

From:https://www.cnblogs.com/hnzhengfy/p/18384107/webapi_centos
本文地址: http://shuzixingkong.net/article/1601
0评论
提交 加载更多评论
其他文章 【漏洞分析】OSN 代币攻击事件:一笔资金伪造多个分红大户
背景 OSN 是一种 fee on transfer 代币,会根据用户分红账户的余额对用户发放分红。攻击者利用漏洞增发分红账户的余额,随后触发分红机制完成获利。 OSN:https://bscscan.com/address/0x810f4c6ae97bcc66da5ae6383cc31bd3670
【漏洞分析】OSN 代币攻击事件:一笔资金伪造多个分红大户 【漏洞分析】OSN 代币攻击事件:一笔资金伪造多个分红大户 【漏洞分析】OSN 代币攻击事件:一笔资金伪造多个分红大户
最常用集合 - arraylist详解
ArrayList介绍 ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不
最常用集合 - arraylist详解 最常用集合 - arraylist详解 最常用集合 - arraylist详解
使用 setenv 配置文件管理 Tomcat 的自定义环境变量
1、背景描述 有时候,我们会在 catalina.bat 或 catalina.sh 文件中,自定义一些环境变量,例如额外指定 JDK 路径或设置 JVM 参数。 实际上,直接在 catalina.bat 或 catalina.sh 文件中,自定义环境变量的做法,是不规范的。 因为在对 Tomcat
使用 setenv 配置文件管理 Tomcat 的自定义环境变量 使用 setenv 配置文件管理 Tomcat 的自定义环境变量 使用 setenv 配置文件管理 Tomcat 的自定义环境变量
四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat
四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat @目录四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器)
四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat 四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat 四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat
NSmartProxy:一款.NET开源、跨平台的内网穿透工具
前言 今天大姚给大家分享一款.NET开源、免费(MIT License)、跨平台的内网穿透工具,采用.NET Core的全异步模式打造:NSmartProxy。 内网穿透工具介绍 内网穿透工具是一种能够允许用户从互联网上的任何地方安全地访问并管理处于内网(如家庭网络、公司局域网等)中的设备的工具。
NSmartProxy:一款.NET开源、跨平台的内网穿透工具 NSmartProxy:一款.NET开源、跨平台的内网穿透工具 NSmartProxy:一款.NET开源、跨平台的内网穿透工具
一个操作系统的设计与实现——第21章 高级可编程中断控制器
21.1 什么是高级可编程中断控制器 我们已经使用过型号为8259A的可编程中断控制器(Programmable Interrupt Controller,PIC)。在单CPU计算机中,中断的处理相对简单:所有的外设和CPU都连接在PIC上即可。然而,如果计算机中不止一个CPU,情况就会变得复杂起来
一个操作系统的设计与实现——第21章 高级可编程中断控制器
网络安全公开数据集Maple-IDS,恶意流量检测数据集开放使用!
Maple Dataset 枫叶数据集Maple Dataset枫叶数据集由东北林业大学网络安全实验室(https://maple.nefu.edu.cn/lab/)公开发布,是用于入侵检测评估的数据集,其目的在于提升异常基础入侵检测系统(IDS)以及入侵预防系统(IPS)的性能与可靠性。在网络攻击
FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
​对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机APP。 不管是软件还是APP,都要通过编程来实现。对于编程类的毕业设计,既有图书馆管理系统这样万年不变的增删改查软件,也