.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

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

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

相关文章

问题:react函数中的state是上一次的值

场景 有一个聊天输入框组件,输入框上面有表情包组件。 通过redux创建了store,存储一个message的状态,用于表情包和输入框共享状态。 输入框通过设置value和onClick做了一个简单双向绑定,其中value的值为store里的message。 impor…

【Java框架】Spring框架(三)——Spring整合Mybatis及Spring声明式事务

目录 回顾Mybatis和新对象思路整理 Spring和MyBatis的整合步骤1. 创建Web工程,导入Spring和MyBatis的相关依赖2. 建立开发目录结构,创建实体类3. 创建数据访问接口和SQL映射语句文件4. 使用Spring配置文件配置数据源4.1 database.properties4.2spring配置…

全国产化无风扇嵌入式车载电脑在救护车远端诊断的行业应用

救护车远端诊断的行业应用 背景介绍 更加快速的为急症病人在第一时间开始进行诊断和治疗,是提高病人救助成功率的关键。因此,先进的救护系统正在思考,如何在病人进入救护车之后,立刻能够将救护车中各种检查仪器的信息快速的传回医院&#xf…

aws云靶场和一些杂记

aws靶场 在AWS靶场中,存在三个安全问题:1) 一个S3存储桶政策配置错误,允许公共访问,通过访问特定域名可获取flag。2) SQS消息队列的政策没有限制角色,允许发送和接收消息,通过aws sqs命令行工具的receive-…

JS-42-Node.js01-Node.js介绍

一、浏览器大战 众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准。 后来,微软通过IE击败了Netscape后一统桌面,结果几年时间,浏览器毫无进步。(2001年推出…

C++面向对象程序设计-北京大学-郭炜【课程笔记(七)】

C面向对象程序设计-北京大学-郭炜【课程笔记(七)】 1、类型转换运算符2、自增、自减运算符的重载3、继承和派生的基本概念3.1、基本概念3.2、派生类对象的内存空间 4、继承关系和复合关系4.1、继承关系的使用4.2、复合关系的使用 5、派生类覆盖基类成员6…

《论文阅读》基于情感原因感知的共情对话生成模型 2023 AAAI

《论文阅读》基于情感原因感知的共情对话生成模型 2023 AAAI 前言简介模型构架情绪推理器回复生成器实验结果前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《The Empathic Dialogue Generation Model…

npm ERR! code CERT_HAS_EXPIRED (创建vue过程)

npm ERR! code CERT_HAS_EXPIRED (创建vue过程) 起因:卸载 npm uninstall -g vue-cli时候发现报这个错误。 当我们创建vue之前,使用npm更新或者安装啥的时,出现此类提示,则表明,用来验证和网络加…

java读取Excel表格数据

java读取Excel表格数据 环境说明项目结构1.controller层2.service层实现层StudentModel.java类 使用的Maven依赖效果示例一效果示例二文档截图第一页第二页 postman请求说明其他说明 环境说明 jdk1.8,springboot2.5.3 项目结构 1.controller层 package com.exam…

Taro-vue微信小程序用户隐私保护

Taro-vue微信小程序用户隐私保护 一、在 微信公众平台的【设置】- 【服务内容与声明】 ,设置用户隐私保护指引,添加项目需要的接口权限。 【用户隐私保护指引】提交之后,官方会进行审核。审核通过之后,对应的接口权限才会生效。 …

区块链安全应用----压力测试

通过Caliper进行压力测试程序 1.环境配置 第一步. 配置基本环境 部署Caliper的计算机需要有外网权限;操作系统版本需要满足以下要求:Ubuntu > 16.04、CentOS > 7或MacOS > 10.14;部署Caliper的计算机需要安装有以下软件&#xff…

【C语言回顾】函数

前言1. 函数的概念和分类2.库函数3. 自定义函数3.1 自定义函数的简单介绍3.2 自定义函数举例 4. 形参和实参4.1 形参4.2 实参4.3 形参和实参的关系4.3.1 理解4.3.2 举例代码和调试 5. 嵌套函数和链式访问5.1 嵌套函数5.2 链式访问 6. 函数的声明和定义6.1 单个文件6.2 多个文件…

ChatGPT在遥感领域中的应用

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力。本课程重点介绍ChatGPT在遥感中的应用,人工智…

中文编程入门(Lua5.4.6中文版)第十三章 Lua 文件操作

在《Lua世界》的冒险旅途中,勇士们时常需要与神秘的文本卷轴打交道。为了更好地掌握这些知识宝藏,Lua I/O库提供了两种强大的探索模式:简单模式和完全模式,助你轻松应对各类文献挑战。 简单模式:初识卷轴 简单模式如…

C# aspose word实现模板方式打印及打印速度慢解决方法

1.引用dll nuget或者网上都有下载的方式。不过都要收费。下载地址:https://files.cnblogs.com/files/rolayblog/Tool.zip?t1713322422&downloadtrue 2.打印模板设计 新建一个doc文档,根据自己的需求画页面。 A、普通文本 在word中需要替换值的地方添…

《2024最新Java面试题及答案(带完整目录)》

获取链接:《2024最新Java面试题及答案(带完整目录)》 更多技术书籍:技术书籍分享,前端、后端、大数据、AI、人工智能... ​ ​ ​ 4.1.9.8. 可重入锁(递归锁) ...........................…

Oracle11.2.0.1,(CVE-2012-1675)漏洞解决方案

1.进入容器停止监听 docker exec -it -u 0 oracle11g bash su - oracle lsnrctl stop listener2.找到监听配置文件位置,修改监听文件 echo $ORACLE_HOMEvi network/admin/listener.ora #在文件底部添加 SECURE_REGISTER_LISTENER (IPC) #启动监听 lsnrctl start …

基于springboot+vue+Mysql的汽车租赁系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

idea运行报错:启动命令过长

JAVA项目,运行的时候报错 Command line is too long. Shorten the command line via JAR manifest or via a classpath file and rerun老问题了,记录一下 解决办法: 1、Edit Configurations 2、点击Modify options设置,勾选S…

PlistEdit Pro for Mac激活版:强大的Plist文件编辑工具

PlistEdit Pro for Mac是一款专为Mac用户设计的强大Plist文件编辑工具。Plist文件是苹果公司开发的一种XML文件格式,用于存储应用程序的配置信息和数据。这款软件为用户提供了直观、易用的界面,使编辑和管理Plist文件变得轻松简单。 PlistEdit Pro for M…