WebAPI项目在Linux服务器上部署记录

news2024/12/30 1:57:40

对已有的WebAPI项目进行发布

发布流程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要把publish的文件夹直接上传至linux服务器

在Linux服务器上部署环境

检查是否安装了dotnet环境

直接命令行输入 dontnet,如果弹出的是下面的语句,说明没有安装dotnet环境
在这里插入图片描述

-bash: dotnet:command not found

查找安装dotnet环境

通过下面命令来找有什么可以下载安装的环境

yum search dotnet

[截图]

如果找不到最新dotnet环境
需要创建新的缓存
在这里插入图片描述

yum makecache

在这里插入图片描述

然后再查找dotnet运行时环境
如果查看的时候是下面这种情况
在这里插入图片描述
在这里插入图片描述
说明没有安装RPM包,可以尝试按照一下的步骤安装RPM包

  • 导入rpm源
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
  • 更新软件包
sudo yum -y update
  • 创建新的缓存
yum makecache
  • 搜索安装包
yum search all  dotnet

安装dotnet环境

根据上图可以发现有很多是.NET Core的安装运行时和sdk,因此我们要局限一些,只需要查找aspnetcore就可以了

yum search aspnetcore

[图片]
安装需要的运行环境,我的项目是6.0的框架,因此,我安装7.0的运行时

yum install -y aspnetcore-runtime-7.0

等待一下系统运行安装完成,说明webapi的运行时环境已经部署到Linux服务器上了
为什么没有找到6.0的版本,我也没有弄清楚,知道的小伙伴可以留言,但是装7.0的版本也是可以的

运行webapi项目

dotnet WangZongTools.API.dll

[图片]

皆大欢喜,说明运行环境和你项目框架一致,就可以的了。

记录遇到的问题

显示“The framework ‘Microsoft.NETCore.App’,Version’7.0.0’ (x64) was not found”

需要找到项目的runtimeconfig.json文件,查看当前目录下所有的文件

ll
cat xxx.runtimeconfig.json

然后把Microsoft.NETCore.App的version修改成提示找到的version
打开文件

vi xxx.runtimeconfig.json

修改完后,按esc键保存,然后输入 :wq 退出编辑状态

修改项目指定的IP地址

在linux界面按 ctrl+c停止项目运行
[图片]
重新指定ip地址和端口号启动

dotnet WangZongTools.API.dll --urls="http://*:8081"

如果是使用某里云的服务器的话,弹出“Cannot assign requested address”错误。说明你使用了公网IP,要切换成某里云的内网IP

在服务器外,访问会访问不了

使用在局域网内的其他机子使用 curl指令来访问我们部署好的网站

curl http://某里云公网IP/xxx/xxx

一般是防火墙的原因,可以尝试停掉防火墙,然后再去访问,仅仅测试使用,不建议关掉防火墙
关闭防火墙命令

systemctl stop firewalld

开启防火墙

systemctl start firewalld

当前的部署仅运行于当前环境,并没有开启后台运行。

因此,会出现你关闭编辑器后,api就无法访问了。如果需要长期使用的话,需要把项目在后台运行

可以使用以下命令来添加

nohup dotnet WangZongTools.API.dll --urls="http://*:8081" &

如果出现提示:

 忽略输入并把输出追加到"nohup.out"

需要将标准输出内容重定向到文件

nohup dotnet WangZongTools.API.dll --urls="http://*:8081" > a.txt 

出现提示:

 nohup: 忽略输入重定向错误到标准输出端

将标准错误输出重定向到文件

nohup  dotnet WangZongTools.API.dll --urls="http://192.168.x.x:8081"  > a.txt 2>&1 &

注意事项

在某里云里面的服务器,记得需要去开放端口号才可以访问噢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1126811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件开发工具总结篇

作为软件开发人员,我们需要使用许多工具来帮助我们完成工作。这些工具包括编程语言、编辑器、集成开发环境(IDE)和其他辅助工具。在本文中,我们将讨论一些常见的软件开发工具,并对它们进行比较。 编程语言 编程语言是…

SpringCloud复习:(1)netflix包里的DiscoveryClient类

DiscoveryClient类实现了EurekaClient接口 它的主要作用:服务注册,服务续约,服务下线,获取服务列表。 initScheduledTasks方法用来开启定时任务来完成上述功能。 上图中的代码用来从服务器定期(默认30秒)…

TLSR825x之BDT烧录固件

泰凌烧录调试工具(BDT)适用于泰凌全系列。在SDK开发过程中,BDT的功能包括“擦除Flash扇区”、“下载固件”、“通信失败时激活MCU”、“访问包括FLASH /CORE /ANALOG /OTP在内的存储空间”、“读/写全局变量”和“查看USB 日志”。 泰凌BDT_…

解密一致性哈希算法:实现高可用和负载均衡的秘诀

解密一致性哈希算法:实现高可用和负载均衡的秘诀 前言第一:分布式系统中的数据分布问题,为什么需要一致性哈希算法第二:一致性hash算法的原理第三:一致性哈希算法的优点和局限性第四:一致性哈希算法的安全性…

初识JAVA,带你入门

本章重点: 1. Java语言简介、发展概述、语言优势、与C/C区别 2. 初识Java程序入口之main方法 3. 注释、标识符、关键字 1. Java语言概述 1.1 Java是什么? Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义…

结构体、枚举、位段、联合体详解

🎈个人主页:.满船清梦压星河_-CSDN博客 🌂c/c领域新星创作者 🎉欢迎👍点赞✍评论❤️收藏 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教&#xf…

虚拟机安装centos系统后配置桥接网络

一.桥接网络和nat网络的区别 桥接模式 通过使用物理机网卡 具有单独ip,但是需要手动配置。 在bridged模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。主机网卡和虚拟网卡的IP地址处于同一个网段&#xff…

SVN服务数据迁移(windows)

1.原服务器和目标服务器都要安装VISUALSVN SERVER(官方下载地址) 2.在原svn服务器备份 得到备份文件,并传至新服务器 3.在新服务器恢复备份 选择备份文件 输入仓库名 4.检验文件和历史记录是否完整

我的创作纪念日 - 第四年

机缘 几乎自己的所有文章都用同一个模板,虽然高效,但也乏味,就让每年都有一次例外吧。 不知不觉已经过去了四年了,虽然很早就在CSDN查阅资料,但是真正落笔创作是在4年前。那个时候自己已经是一个从事培训讲师&#x…

人机关系中不但有“是否”还有“是非”

“是否”和“是非”的区别在于它们所提问的内容和性质不同。 “是否”用于提问某个事件或行为是否发生或存在,通常可以回答“是”或“否”。例如,“你今天早上吃早餐了吗?”这个问题用的就是“是否”,可以回答“是”或“否”。 而…

【JavaEE】网络编程---TCP数据报套接字编程

一、TCP数据报套接字编程 1.1 ServerSocket API ServerSocket 是创建TCP服务端Socket的API ServerSocket 构造方法: ServerSocket 方法: 1.2 Socket API Socket 是客户端Socket,或服务端中接收到客户端建立连接(accept方法&…

IP-guard发布新版本4.82.624.0

http://www.tec-development.com/down/IPguard/Release/V4/IPguard4.82.0624.0.zip?s=44869B0835D388673FC6DB5F45C1E0E876895C1108B86C7E76877511EB1018A4http://www.tec-development.com/down/IPguard/Release/V4/IPguard4.82.0624.0.zip?s=44869B0835D388673FC6DB5F45C1E0…

JAVA-TreeSet使用方式

1. TreeSet 在一次写力扣题的时候,用到了TreeSet,这里记录一下TreeSet的常用方式。 TreeSet的特点:有序,不可重复,红黑树,基于Treemap实现,自定义排序等特点。 java中实现的Set有HashSet ,Lin…

thinkphp 解决跨域的三个方式

1. 在tp入口index.php 加上header //支持跨域 header("Access-Control-Allow-Origin:*"); header(Access-Control-Allow-Methods:*); header(Access-Control-Allow-Headers:x-requested-with, content-type,token); 2. 在route.php加上 allowCrossDomain()&#xff…

自定义指令与Apollo:定制化数据查询与变更

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

【ArcGIS模型构建器】04:根据矢量范围批量裁剪影像栅格数据

本文以中国2000-2010-2020年3期GLC30土地覆盖数据为例,演示用模型构建器批量裁剪出四川省3年的数据。 文章目录 一、结果预览二、模型构建三、运行模型四、注意事项一、结果预览 用四川省行政区数据裁剪出的3年Globeland30(配套实验数据data04.rar中有三年中国区域成品数据)…

永磁无刷直流(无框)力矩电机brushless DC motor (BLDCM)

(无框)力矩电机,全称应该为永磁无刷直流(无框)力矩电机,其显著的特征是: 较大的径长比(diameter-to-length ratio)较多数目的磁极(magnet poles) 无框架电机是传统电机中用于产生扭矩和速度的…

常用Win32 API的简单介绍

目录 前言: 控制控制台程序窗口的指令: system函数: COORD函数: GetStdHandle函数: GetConsoleCursorInfo函数: CONSOLE_CURSOR_INFO函数: SetConsoleCursorInfo函数: SetC…

一条监视仪表的小需求,挖掘出定制大市场

作为安防圈内人士,你有没有想过,日常遇到的一条小小客户需求,也许有企业能通过深度定制,在短时间内快速达成且具有极高的性价比,并由此给你带来一个稳定收益的商机?山东的马先生作为一名资深的安防人&#…

【RocketMQ系列十二】RocketMQ集群核心概念之主从复制生产者负载均衡策略消费者负载均衡策略

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…