当前位置: 首页 > news >正文

.NET 发布,部署和运行应用程序

.NET应用发布

发布.Net应用有很多种方式,下面列举三种发布方式:

  • 单文件发布
  • 跨平台发布
  • Docker发布

单文件发布

        右键工程,选择“发布”,部署模式选择“独立”,目标运行时选择自己想要部署到的系统,我这里用的是linux 64位系统,在文件发布选择项中选择“生成单个文件”,那么发布后生成的就是包含所有环境和依赖项的独立程序,在目标系统中可直接运行改文件。

跨平台发布

        在发布选项中,部署模式选择“独立”,目标运行时选择自己想要部署到的系统,在在文件发布选择项中不选择“生成单个文件”,则是跨平台发布。

Docker发布

        右键工程,选择“添加”,然后选择“Docker支持”,选择目标平台和Dockerfile,配置Dockerfile,发布Dockerfile,使用windows的Powershell打包docker镜像(安装Docker Desktop)。

添加Dockerfile

配置Dokcerfile

Docker镜像打包

Windows打包镜像步骤:

#打开Powershell进入Dockerfile工作目录
cd .../publish#打包Docker镜像
docker build --tag demo:1.0 .#镜像导出
docker save -o d:\demo.tar demo:1.0#将导出镜像复制到远程linux服务器目录#linux Docker镜像导入
docker load -i /api/demo/demo.tar#Docker查询,镜像是否导入
docker images#生成docker容器并启动
docker run -d -p 9000:5000 --name demo demo:1.0

.NET应用部署

部署和运行.Net应用有也很多种方式,下面列举:

  • 单文件直接运行
  • 服务运行
  • Docker运行

单文件直接运行

        将发布的.NET应用程序文件复制到目标平台目录,首先将运行文件赋权,然后输入命令直接运行程序。

chmod +x demo  #给文件赋权
./demo         #直接运行程序

服务运行

        通过在/etc/systemd/system/中创建一个服务,并添加配置,然后使能服务,运行服务。查询dotnet安装位置命令

#创建服务
cd /etc/systemd/system/
vim api.service#添加服务配置
[Unit]
Description=Example .NET Web API App running on Ubuntu[Service]
WorkingDirectory=/api/ubuntu
ExecStart=/usr/bin/dotnet /api/ubuntu/ProgramShow.WebApi.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-api
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false[Install]
WantedBy=multi-user.target#使能服务
systemctl enable api.service#运行服务
systemctl start api.service

注意:ExecStart=/usr/bin/dotnet为dotnet安装文件,查询dootnet安装位置,使用命令:

whereis dotnet                                #查询dotnet安装位置
/usr/bin/dotnet /usr/lib/dotnet /etc/dotnet   #查询结果

WorkingDirectory=/api/ubuntu为应用程序路径

Docker运行

        Docker导入制作好的服务镜像,创建容器并启动容器。

#linux Docker镜像导入
docker load -i /api/demo/demo.tar#Docker查询,镜像是否导入
docker images#生成docker容器并启动
docker run -d -p 9000:5000 --name demo demo:1.0

Nginx反向代理

        使用Nginx反向代理,能够使用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址。如果不适用方向代理,外部电脑可能访问改服务。

#安装完nginx后进入sites-available目录
cd /etc/nginx/sites-available/#创建nginx服务
vim api#配置服务
server {listen 9000;location / {proxy_pass http://localhost:5000;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection keep-alive;proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}
}#查看服务
ln -s ../sites-available/api ./#重启ngnix服务
nginx -s reload   

参考:

.NETCore项目在Windows下构建Docker镜像并本地导出分发到CentOS系统下_.net程序打包成docker镜像-CSDN博客

[ASP.NET Core] 6.5 发布和部署应用 IIS/Nginx/Docker_哔哩哔哩_bilibili

相关文章:

.NET 发布,部署和运行应用程序

.NET应用发布 发布.Net应用有很多种方式,下面列举三种发布方式: 单文件发布跨平台发布Docker发布 单文件发布 右键工程,选择“发布”,部署模式选择“独立”,目标运行时选择自己想要部署到的系统,我这里用…...

B树(B-tree)

B树(B-tree) B树(B-tree)是一种自平衡的多路查找树,主要用于磁盘或其他直接存取的辅助存储设备 B树能够保持数据有序,并允许在对数时间内完成查找、插入及删除等操作 这种数据结构常被应用在数据库和文件系统的实现上 B树的特点包括: B树为…...

EelasticSearch是什么?及EelasticSearch的安装

一、概述 Elasticsearch 是一个基于 Apache Lucene 构建的开源分布式搜索引擎和分析引擎。它专为云计算环境设计,提供了一个分布式的、高可用的实时分析和搜索平台。Elasticsearch 可以处理大量数据,并且具备横向扩展能力,能够通过增加更多的…...

Python机器学习项目开发实战:如何进行语音识别

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:Python机器学习项目开发实战_语音识别_编程案例解析实例详解课程教程.pdf 在Python机器学习项目…...

2024年五一杯数学建模C题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…...

【代码】Python3|Requests 库怎么继承 Selenium 的 Headers (2024,Chrome)

本文使用的版本: Chrome 124Python 12Selenium 4.19.0 版本过旧可能会出现问题,但只要别差异太大,就可以看本文,因为本文对新老版本都有讲解。 文章目录 1 难点解析和具体思路2 注意事项2.1 PDF 资源获取时注意事项2.2 Capabiliti…...

JAVA程序设计-对象设计

无论是根据某马还是某谷的适配教程做项目时候,发现了大部分都是重复的crud,大部分只要做好笔记复习即可,但是却往往忘记了编码设计,所以这里开始复习编码设计,对象设计中,长期使用Mp的那一套导致就是Service Mapper,一套梭哈完了,这样很容易忘记基本功夫 POJO: 简单…...

蓝桥杯2024年第十五届省赛真题-R 格式

找到规律后如下&#xff0c;只需要用高精度加法和四舍五入&#xff08;本质也是高精度加法就能做&#xff09;&#xff0c;如果没有找到规律&#xff0c;就得自己写高精度乘法和加法&#xff0c;不熟练很容易错。 //#include<bits/stdc.h> #include<iostream> #i…...

Linux服务器硬件及RAID配置

一、服务器硬件 塔式服务器&#xff1a;最初的服务器形态之一&#xff0c;类似于传统的台式电脑&#xff0c;但具有更强的处理能力和稳定性&#xff0c;适合小型企业或部门使用。 机架式服务器&#xff1a;设计为可安装在标准化机架内的模块化单元&#xff0c;可以有效地节省空…...

前端 vue单页面中请求数量过多问题 控制单页面请求并发数

需求背景&#xff1a; 页面中需要展示柜子&#xff0c;一个柜子需要调用 详情接口以及状态接口 也就是说有一个柜子就需要调用两个接口&#xff0c;在项目初期&#xff0c;接手的公司项目大概也就4-5个柜子&#xff0c;最多的也不超过10个&#xff0c;但是突然进来一个项目&a…...

HarmonyOS开发实例:【分布式手写板】

介绍 本篇Codelab使用设备管理及分布式键值数据库能力&#xff0c;实现多设备之间手写板应用拉起及同步书写内容的功能。操作流程&#xff1a; 设备连接同一无线网络&#xff0c;安装分布式手写板应用。进入应用&#xff0c;点击允许使用多设备协同&#xff0c;点击主页上查询…...

Unity TMP Inputfield 输入框 框选 富文本 获取真实定位

一、带富文本标签的框选是什么 UGUI的InputField提供了selectionAnchorPosition和selectionFocusPosition&#xff0c;开始选择时的光标下标和当前光标下标 对于未添加富文本标签时&#xff0c;直接通过以上两个值&#xff0c;判断一下框选方向&#xff08;前向后/后向前&…...

如何在原生项目中集成flutter

两个前提条件&#xff1a; 从flutter v1.17版本开始&#xff0c;flutter module仅支持AndroidX的应用在release模式下flutter仅支持一下架构&#xff1a;x84_64、armeabi-v7a、arm6f4-v8a,不支持mips和x86;所以引入flutter前需要在app/build.gradle下配置flutter支持的架构 a…...

【设计模式】策略模式

目录 什么是策略模式 代码实现 什么是策略模式 策略模式是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;将每个算法封装成一个独立的对象&#xff0c;使得它们可以相互替换。 在策略模式中&#xff0c;通常有三个角色&#xff1a; 环境类&#xff08;Cont…...

Java面试八股之Iterator和ListIterator的区别是什么

Iterator和ListIterator的区别是什么 这道题也是考查我们对迭代器相关的接口的了解程度&#xff0c;从代码中我们可以看出后者是前者的子接口&#xff0c;在此基础上做了一些增强&#xff0c;并且只用于List集合类型。 定义与基本概念 Iterator&#xff1a; 定义&#xff1a…...

服务器中毒怎么办?企业数据安全需重视

互联网企业&#xff1a; 广义的互联网企业是指以计算机网络技术为基础&#xff0c;利用网络平台提供服务并因此获得收入的企业。广义的互联网企业可以分为:基础层互联网企业、服务层互联网企业、终端层互联网企业。 狭义的互联网企业是指在互联网上注册域名&#xff0c;建立网…...

k8s使用harbor私有仓库镜像 —— 筑梦之路

官方文档: Secret | Kubernetes ImagePullSecrets的设置是kubernetes机制的另一亮点&#xff0c;习惯于直接使用Docker Pull来拉取公共镜像&#xff0c;但非所有容器镜像都是公开的。此外&#xff0c;并不是所有的镜像仓库都允许匿名拉取&#xff0c;也就是说需要身份认证&…...

tcp bbr pacing 的对与错

前面提到 pacing 替代 burst 是大势所趋&#xff0c;核心原因就是摩尔定律逐渐失效&#xff0c;主机带宽追平交换带宽&#xff0c;交换机不再能轻易吸收掉主机突发&#xff0c;且随着视频类流量激增&#xff0c;又不能以大 buffer 做带宽后备。因此&#xff0c;主机必须 pacing…...

MySQL学习-非事务相关的六大日志、InnoDB的三大特性以及主从复制架构

一. 六大日志 慢查询日志:记录所有执行时间超过long_query_time的查询&#xff0c;方便定位并优化。 # 查询当前慢查询日志状态 SHOW VARIABLES LIKE slow_query_log; #启用慢查询日志 SET GLOBAL slow_query_log ON; #设置慢查询文件位置 SET GLOBAL slow_query_log_file …...

【软件测试】MIL/HIL/PIL/SIL测试

V字型开发流程 引用文章&#xff1a;汽车行业V模型开发详解 V模型开发&#xff08;V-Model Development&#xff09;是一种广泛应用于汽车行业的系统开发方法。它以字母“V”形状的图表形式展示了开发过程中不同阶段之间的关系&#xff0c;从需求分析到系统整合和验证&#x…...

WebKit结构深度解析:打造高效与安全的浏览器引擎

WebKit结构深度解析&#xff1a;打造高效与安全的浏览器引擎 在现代网络世界中&#xff0c;浏览器作为连接用户与互联网信息的桥梁&#xff0c;其背后的技术架构至关重要。WebKit&#xff0c;作为当今最流行的开源浏览器引擎之一&#xff0c;其结构设计和功能实现对于提升浏览…...

SQLSERVER对等发布问题处理

问题1&#xff1a; 无法对 数据库Sast_Business 执行 删除&#xff0c;因为它正用于复制。 (.Net SqlClient Data Provider) 处理&#xff1a; USE [master]; GO EXEC sp_replicationdboption dbname NSast_Business, optname Npublish, value Nfalse; EXEC sp_replica…...

CentOS 7 中时间快了 8 小时

1.查看系统时间 1.1 timeZone显示时区 [adminlocalhost ~]$ timedatectlLocal time: Mon 2024-04-15 18:09:19 PDTUniversal time: Tue 2024-04-16 01:09:19 UTCRTC time: Tue 2024-04-16 01:09:19Time zone: America/Los_Angeles (PDT, -0700)NTP enabled: yes NTP synchro…...

itext7 pdf转图片

https://github.com/thombrink/itext7.pdfimage 新建asp.net core8项目&#xff0c;安装itext7和system.drawing.common 引入itext.pdfimage核心代码 imageListener下有一段不安全的代码 unsafe{for (int y 0; y < image.Height; y){byte* ptrMask (byte*)bitsMask.Scan…...

搜维尔科技:Manus Xsens Metagloves新一代手指捕捉

Manus Xsens Metagloves新一代手指捕捉 搜维尔科技&#xff1a;Manus Xsens Metagloves新一代手指捕捉...

Python与Redis:提升性能,确保可靠性,掌握最佳实践

在 Python 中&#xff0c;有多个库可用于与 Redis 数据库进行交互&#xff0c;其中最受欢迎的是 redis-py。这是一个 Python 客户端库&#xff0c;提供了与 Redis 数据库进行通信的丰富功能。 Python操作Redis操作步骤 安装 redis-py 使用 pip 安装 redis-py&#xff1a; p…...

GPT国内能用吗

2022年11月&#xff0c;Open AI发布ChatGPT&#xff0c;ChatGPT展现了大型语模型在自然语言处理方面的惊人进步&#xff0c;其生成文本的流畅度和连贯性令人印象深刻&#xff0c;为AI应用打开了新的可能性。 ChatGPT的出现推动了AI技术在各个领域的应用&#xff0c;例如&#x…...

中科亿海微-CL1656功能验证开发板

I. 引言 A. 研究背景与意义 CL1656是一款精度高、功耗低、成本低的5V单片低功耗运放&#xff0c;由核心互联公司研发制造&#xff0c;CL1656 是一个 16-bit、快速、低功耗逐次逼近型 ADC&#xff0c;吞吐速率高达 250 kSPS&#xff0c;并且内置低噪声、宽 带宽采样保持放大器。…...

学习STM32第十五天

SPI外设 一、简介 STM32F4XX内部集成硬件SPI收发电路&#xff0c;可以由硬件自动执行时钟生成、数据收发等功能&#xff0c;减轻CPU负担&#xff0c;可配置8位/16位数据帧&#xff0c;高位&#xff08;最常用&#xff09;/低位先行&#xff0c;三组SPI接口&#xff0c;支持DMA…...

【面试题】MySQL 事务的四大特性说一下?

事务是一个或多个 SQL 语句组成的一个执行单元&#xff0c;这些 SQL 语句要么全部执行成功&#xff0c;要么全部不执行&#xff0c;不会出现部分执行的情况。事务是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成。 事务的主要作用是保证数…...

如何制作游戏?/东莞市网站seo内容优化

1. 取得列表中的Item的数量&#xff1a; Int count SPContext.Current.List.Items.Count; 这句是取得Item的数目&#xff0c;不得不取得列表中的所有的Item的metadata,这样我们程序运行的速度就会相对慢一些&#xff0c;如果列表中的数据量不大&#xff0c;那不会有…...

在网站建设工作会议上的讲话/百度快速排名优化技术

结构和类很相似&#xff0c;也可以包含数据成员和函数成员&#xff0c;但是与类不同&#xff0c;结构是一种值类型&#xff0c;&#xff08;我们可以理解为一种特殊的值类型所以不存在继承的问题&#xff09;为其分配数据不需要从托管堆中分配存储器。结构类型的变量直接包含了…...

哪些网站做的好/发布软文广告

问题及代码&#xff1a; /*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名&#xff1a;test.cpp *作者&#xff1a;liu_feng_zi_ *完成日期&#xff1a;2015年5月24日 *版本号&#xff1a;v1.0 *问题描述&#xff1a;字符串除了用C扩充的string类型外…...

上海英文网站建设公司/今日头条官网首页

安装&#xff0c;软件的安装顺序可以适当调整&#xff0c;但是jre(jdk)一定要在tomcat之前安装&#xff1a;1、安装JRE(JDK)此处选择默认安装即可&#xff0c;(旧版本的JDK安装完之后需要设置系统的环境变量&#xff0c;JRE和JDK1.5.0以后版本不设置也没关系。)安装完成之后你可…...

疫情防控最新形势/宁波seo外包方案

ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片2012-05-16 11:25:51 我来说两句 收藏 我要投稿以下介绍两种方法&#xff1a;1.利用WebRequest&#xff0c;WebResponse 类WebRequest wreqWebRequest.Create("http://up.2cto.com/2012/0516/201205161…...

南宁企业网站建设制作/东莞寮步最新通知

&#xfeff;&#xfeff;一直很高冷高贵的银行业据说一年不如一年&#xff1f; 总是被大家粗暴地切断电话的保险业稳稳地茁壮成长&#xff1f; 身在金融领域需要时刻关注行业的起伏变化&#xff0c;否则一不小心就可能错过一波热潮、或是被困于谷底。 银行一线城市招聘需求仍稳…...