如何将Asp.net Core站点部署到CentOS

news2024/11/25 6:16:34

我们要想在linux系统中运行asp.net core程序,有两种方式:

  1. 直接部署在linux系统中
  2. 通过docker镜像部署在linux系统中

今天就来看下,如何直接把asp.net core应用站点部署到CentOS中!

安装.NET Core SDK

添加微软包地址到rpm(安装升级RPM包)

#其中i表示安装,v表示显示安装过程,h表示显示进度,U是表示升级包

rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

更新rpm包

rpm update

 检查net core版本,更新完以后,默认会安装最新版的NET Core SDK,可以通过以下命令查看版本

dotnet --info

手动安装.net core sdk

yum install dotnet-sdk-3.1

 发布asp.net core到linux系统

asp.net core程序发布到本地文件夹

通过visual studio 发布菜单,将asp.net core应用程序发布到本地应用程序文件夹。

选择linux x64环境,前面已经安装了SDK,建议直接框架依赖。

默认是保存到Release下的publish目录里面,发布后可以直接点击链接导航到目标文件夹。

  • 上传到linux系统

通过XShell,将文件上传到CentOS中的/data/sites/yourapp目录下,其中yourapp可以自己随便命名和创建。

//递归创建目录 -p 表示递归创建
 mkdir -p /data/sites/yourapp

XShell上点击新建传输,直接将windows文件夹中的文件拖动到linux文件夹中即可。

如果上传不成功,需要给文件夹设置权限

sudo mkdir -p /data/sites/yourapp
// 修改权限为当前登录用户,否则无法上传
sudo chown -R 用户:用户组 /data
  • 启动应用程序

文件上传上去后,我们进入的Linux系统中,先切换目录到/data/sites/yourapp,再通过dotnet yourapp.dll命令来启动应用程序。

# cd /data/sites/yourapp
//如果当前用户权限不足,在前面加 sudu 提权
# dotnet yourapp.dll

如果我们执行命名后,提示如下界面,表示服务启动成功

// 主机环境:Production
Hosting environment: Production
// 根目录
Content root path: /data/sites/yourapp
// 侦听地址和端口
Now listening on: http://0.0.0.0:5100
// 提示关闭技巧,Ctrl+C 可以关闭此主机
Application started. Press Ctrl+C to shut down.

yourapp 可自行重命名成自己的应用程序启动文件名

  • 将应用程序修改成常驻服务

前面通过命名启用站点的方式,很容易被关闭,只要控制台被关闭,服务就会被关闭。而且运行在控制台模式下,无法执行其它操作。

接下来我们把它修改成常驻服务:

定位到文件夹 /etc/systemd/system,输入命令

//创建dotnet寄宿服务配置文件kestrel-dotnet.service,并进入编辑状态
sudo vi kestrel-dotnet.service

// 按 i 将编辑器转换为输入模式
// 将以下内容 copy 到当前编辑器中
[Unit]
Description=Example .NET Web Site running on Centos

[Service]
WorkingDirectory=/data/sites/yourapp
ExecStart=/usr/bin/dotnet yourapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

// 按 esc 键推出编辑模式,输入命令 :wq! 保存并退出

执行以上命令后,我们还需要注册和启动服务

// 注册服务
sudo systemctl enable kestrel-dotnet.service
// 启动服务
sudo systemctl start kestrel-dotnet.service

以上命令执行完成后,我们就完成了常驻服务了。

这个时候,我们可以用浏览器打开我们刚部署的站点,如:http://192.168.1.110:5100。

如果可以正常访问就表示部署完成了。如果不能正常访问,我们可以通过以下几种方式来判断服务是否正常。

外部浏览器无法访问服务排查方法

  • 查看服务是否正在运行
//服务未启动,外部肯定无法访问服务器,需要查看服务是否在线
//通过以下命令,查看`kestrel-dotnet.service`是否存在,如果不存在则重启服务
//查看`kestrel-dotnet.service`是否存在

# systemctl | grep running

//如果不存在,启动服务
# systemctl start kestrel-dotnet.service

  • 查看端口是否正在监听
//如果服务存在,但是应用程序监听错误,也会导致外部无法访问
//查看本机的监听端口是否正常开启,如果没有正常开启,检查站点服务是否启动异常
# netstat -nao

  • 查看本地是否可访问
//先排查本机服务是否能正常访问,如果本机能正常访问,表示本地服务正常。那就需要从其它因素考虑原因。
//尝试请求服务,如果有响应,表示服务正常
# curl http://192.168.1.110:5100

  • 查看端口是否添加到防火墙白名单
//如果端口没有对外暴露,外部应用程序是无法访问的。这种情况,就是本机能正常访问,而外部无法访问很常见的因素
//检查防火墙对外暴露端口,是否包含自己部署的应用程序端口号
# firewall-cmd --zone=public --list-ports
//添加端口到白名单
# firewall-cmd --add-port=5100/tcp
//添加成功后,再重新访问,查看请求是否正常

以上就是将asp.net core部署到linux系统中的过程,我们终于可以真正体验跨平台的乐趣了。

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

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

相关文章

IntelliJ+SpringBoot项目实战(十三)--在SpringBoot中整合Mybatis-plus

mybatis-plus是基于mybatis基础上的增强的持久层框架&#xff0c;也是目前Java项目开发的主流框架。本文介绍在SpringBoot中集成mybtais-plus的方法以及使用mybatis-plus开发增删改查模块。 一、引入mybatis-plus 在openjweb-core工程中引入mybatis-plus依赖: <dependency&…

Vector底层实现详解

一、vector的介绍 vector是表示可变大小数组的序列容器 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&#xff0c;而且…

【2024 Optimal Control 16-745】【Lecture4】equality-constraints.ipynb功能分析

代码实现了一个二次优化问题的可视化解法&#xff0c;包括目标函数、约束以及优化路径。提供了两种优化方法&#xff1a;牛顿法和高斯-牛顿法&#xff0c;用于对比效果。利用了自动微分工具 ForwardDiff 来计算约束曲率。 环境初始化并导入依赖库 # 激活当前文件夹下的项目环境…

【国产MCU】-GD32F470-串行外设接口(SPI)

串行外设接口(SPI) 文章目录 串行外设接口(SPI)1、SPI介绍1.1 SPI特性1.2 SPI信号1.3 SPI 时序和数据帧格式1.4 NSS 功能1.5 SPI运行模式2、SPI控制器寄存器列表3、SPI控制器驱动API介绍4、SPI应用4.1 SPI初始化流程4.2 数据发送与接收串行外设接口(Serial Peripheral Int…

Docker安装ubuntu1604

首先pull镜像 sudo docker run -d -P m.daocloud.io/docker.io/library/ubuntu:16.04国内使用小技巧&#xff1a; https://github.com/DaoCloud/public-image-mirror pull完成之后查看 sudo docker images 运行docker sudo docker run -d -v /mnt/e:/mnt/e m.daocloud.io/…

2024 年:Kubernetes 包管理的新前沿

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;历代文学&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;高并发设计&#xf…

飞凌嵌入式T113-i开发板RISC-V核的实时应用方案

随着市场对嵌入式设备的功能需求越来越高&#xff0c;集成了嵌入式处理器和实时处理器的主控方案日益增多&#xff0c;以便更好地平衡性能与效率——实时核负责高实时性任务&#xff0c;A核处理复杂任务&#xff0c;两核间需实时交换数据。然而在数据传输方面&#xff0c;传统串…

VSCode 汉化教程【简洁易懂】

VSCode【下载】【安装】【汉化】【配置C环境&#xff08;超快&#xff09;】&#xff08;Windows环境&#xff09;-CSDN博客 我们安装完成后默认是英文界面。 找到插件选项卡&#xff0c;搜索“Chinese”&#xff0c;找到简体&#xff08;更具你的需要&#xff09;&#xff08;…

【Mac】VMware Fusion Pro 安装 CentOS 7

1、下载镜像 CentOS 官网阿里云镜像网易镜像搜狐镜像 Mac M1芯片无法直接使用上述地址下载的最新镜像&#xff08;7.9、9&#xff09;&#xff0c;会一直卡在安装界面&#xff08;在 install 界面按 enter 回车无效&#xff09;&#xff0c;想要使用需要经过一系列操作&#…

运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] Docker与Kubernetes集群拉取Harbor私有容器镜像仓库配置 描述&#xff1a;在现在微服务、云原生的环境下&#xff0c;通常我们会在企业中部署Docker和Kubernetes集群&#xff0c;并且会在企业内部…

C语言笔记(自定义类型:结构体、枚举、联合体 )

前言 本文对自定义类型的结构体创建、使用、结构体的存储方式和对齐方式&#xff0c;枚举的定义、使用方式以及联合体的定义、使用和存储方式展开叙述&#xff0c;如有错误&#xff0c;请各位指正。 目录 前言 1 结构体 1.1 结构体的声明 1.2 结构体的自引用 1.3 结构体变…

string的实际应用 -- 大数相加 、大数相乘

前言&#xff1a;哎&#xff0c;做题好难o(╥﹏╥)o&#xff0c;有时候想不到&#xff0c;而有时候则是想到了却没办法理清思路&#xff0c;转化为代码。有必要反思了┓(;_&#xff40;)┏&#xff0c;是否是做的太少了&#xff0c;或是自己的基础欠缺。 大学总是有些迷茫~ ​​…

STM32-- keil 的option for target使用

keil版本号 1.device界面 如&#xff1a;stm32f103c8t6的工程&#xff0c;可以直接在device这里修改成stm32f103vct6&#xff0c;虽然引脚不一样&#xff0c;但是很多一样的地方&#xff0c;可以直接使用&#xff0c;有些不修改也可以下载程序。 2.target xtal的设置不起作用了…

shell脚本9完结,保姆篇---春不晚

免责声明 学习视频来自 B 站up主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 泷羽sec官网&#xff1a;http…

【数据分享】2024年我国省市县三级的住宿服务设施数量(8类住宿设施/Excel/Shp格式)

宾馆酒店、旅馆招待所等住宿服务设施的配置情况是一个城市公共基础设施完善程度的重要体现&#xff0c;一个城市住宿服务设施种类越丰富&#xff0c;数量越多&#xff0c;通常能表示这个城市的公共服务水平越高&#xff01; 本次我们为大家带来的是我国各省份、各地级市、各区…

RabbitMQ和RocketMQ相关面试题

RabbitMQ和RocketMQ面试题 RabbitMQ1.RabbitMQ各部分角色2.如何确保RabbitMQ消息的可靠性&#xff1f;3.什么样的消息会成为死信&#xff1f;4.死信交换机的使用场景是什么&#xff1f;5.TTL6.延迟队列7.消息堆积问题8.MQ集群 RocketMQ1.RocketMQ各部分角色2.RocketMQ如何保证高…

在kali用msfpc远程控制Windows

本次实验我们将使用msfpc生成windows下的被控端&#xff0c;并使用metasploit渗透工具进行远程控制。 一、实验环境 Windows主机IP&#xff1a; 192.168.167.1 虚拟机Kali IP&#xff1a; 192.168.167.100 二、实验过程 1、安装msfpc apt-get install msfpc 2、生成windows…

SDIO WIFI模组Clock EMC问题

问题&#xff1a; 某产品采用SDIO3.0的WIFI模组&#xff0c;测试3米场地辐射出现333MHz和500MHz频点超标。 分析&#xff1a; 1、一开始分析板子上没有对应333MHz,499.5MHz的频点倍频&#xff0c;因此直接拔掉产品上所有的外部接线&#xff0c;测试还是超标。表明辐射源头出…

MCU(一) 时钟详解 —— 以 GD32E103 时钟树结构为例

微控制器 (MCU) 的时钟系统是系统运行的核心&#xff0c;它提供了各模块所需的时钟信号。本文以 GD32E103 系列 MCU 为例&#xff0c;详细讲解其 时钟树结构&#xff08;Clock Tree&#xff09;。通过理解时钟源、分配与预分频器设置&#xff0c;可以灵活配置系统时钟以实现高性…

【方案库】从单张照片快速重建3D场景:Flash3D详解

一、Flash3D是什么? Flash3D 是一项革命性的AI技术,能够从单张普通照片快速重建3D场景。简单来说,你只需要提供一张照片,Flash3D 就能帮你还原出这个场景的立体效果。这项技术在房地产、建筑设计、虚拟现实等多个领域都有着广泛的应用前景。 二、主要特点 一张就够:只需…