ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

news2024/11/23 23:51:37

框架依赖

一、发布
框架依赖(FDD):即Framework-dependent deployments的缩写。这种发布方式依赖于Framework框架,即要部署的服务器上面必须按照ASP.NET Core 运行时环境(ASP.NET Core Runtime)。这种部署方式是微软默认推荐的。下面我们看看如何使用框架依赖进行部署。

我们在项目上面右键选择“发布”:
在这里插入图片描述

发布目标选择发布到文件夹,将文件发布到FDD文件夹,然后点击“高级”:
在这里插入图片描述

在发布界面,部署模式选择框架依赖,目标运行时选择默认的可移植:
在这里插入图片描述

我们看到目标运行时下面有好多选项,这里选择“可移植”,表示编译后的文件可以部署到windows平台、Max平台、Linux平台。如果只想部署到某一个平台,那么可以选择具体的一个平台。比如只想部署到Linux系统的x64架构,那么选择“linux-x64”即可。

最后点击“保存”按钮,然后发布即可:
在这里插入图片描述

这样就使用FDD方式发布成功了。我们看看发布后的文件:
在这里插入图片描述

可以看到,框架依赖方式发布后的文件很少。

二、部署

配置部署环境

我们在上面的步骤中,已经把程序发布到文件夹了,下面进行部署。我们先演示如何使用FDD模式进行部署。FDD模式需要依赖于Framework框架,由于我们只是部署,所以只需要安装ASP.NET Core Runtime即可,不需要安装SDK。我们首先需要在服务器上面安装ASP.NET Core runtime,去微软官网下载相应版本进行安装即可,这里选择ASP.NET Core Runtime 3.1:
在这里插入图片描述

这里选择下载Hosting Bundle。因为Hosting Bundle包括了.Net Core运行时和IIS支持。

下载完成以后,双击exe文件即可进行安装:

安装完成以后我们在命令行里面输入下面的命令,检查是否安装成功:

dotnet --info

如下图所示:
在这里插入图片描述

可以看到提示我们已经安装了.NET Core runtimes环境,没有安装SDK。

由于我们需要部署到IIS上面,所以安装完以后要重启电脑,或者使用下面的命令行重启IIS服务:

net stop was /y
net start w3svc

如下图所示:
在这里插入图片描述

注意:要以管理员身份运行命令行,否则会报拒绝访问的错误

1、控制台方式部署
指定URL
dotnet dll文件名称 --urls http://*:8090

指定端口号
dotnet dll文件名称 --p 8090

直接以控制台的方式部署程序,一般适合于我们自己开发调试程序,真实的生产环境中,不建议使用这种方式。这种方式是Kestrel服务器直接处理HTTP请求,在windows系统中,我们一般是把ASP.NET Core 程序部署在IIS上面,IIS作为反向代理服务器使用。下面我们看看如何部署到IIS上。

2、部署到IIS

在传统的.NET Framework中,ASP.NET程序发布到IIS上面,是由IIS的工作进程(w3wp.exe)托管的,在任务管理器中可以找到该进程。在ASP.NET Core程序中不再是由IIS工作进程托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,然后将接收到的请求推送至中间件管道中,处理完请求后在将HTTP响应数据重新回写到IIS中,最终通过IIS转达到不同的客户端。在这过程中,最重要的角色便是AspNetCoreModuleV2(asp.net core 2.0以前版本中是AspNetCoreModuleV2,asp.net core 2.x版本是AspNetCoreModule,从3.0开始又改回了AspNetCoreModuleV2),它是IIS中的一个模块,HTTP请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中。因为IIS只是作为反向代理负责转发请求,不负责监听HTTP请求端口,所以不需要使用应用程序池来托管我们的代码。

电脑上面安装好了asp.net core 运行时以后,在IIS的模块里面会有AspNetCoreModule:
在这里插入图片描述

双击“模块”,查看里面是否有AspNetCoreModule模块:
在这里插入图片描述

接下来在IIS里面添加网站,如下图所示:

在这里插入图片描述

独立部署

独立(SCD):即Self-contained deployments的缩写。这种方式表示独立提供运行时环境,即要部署的服务器上面不需要安装ASP.NET Core运行时环境即可部署。由于不需要预先安装运行时环境,所以这种发布方式编译后的文件大小会比框架依赖方式编译后的文件大小大。在发布的时候,部署模式选择独立即可:
在这里插入图片描述

这时候目标运行时就没有可移植选项了,由于我们要在windows系统上面部署,所以这里选择win-x64。最后保存发布即可。发布完成以后,我们在看看发布后的文件:
在这里插入图片描述

可以看到,发布后的文件很多,这时因为发布的时候有一些程序运行需要使用的dll文件夹会打包进来。

我们双击该exe文件,会看到直接以控制台的方式启动:

在这里插入图片描述

如果双击exe后访问不了网址,那是因为需要在代码中指定默认端口号。或者使用dotnet dll文件名称也可以部署。

 //默认端口号9200
 if (args.Length > 1 && args[0] == "-p")
 {
     string portStr = args[1];
     if (Regex.IsMatch(portStr, @"^\d*$"))
     {
         webBuilder.UseUrls($"http://*:{portStr}");
     }
 }
 else
 {
     webBuilder.UseUrls($"http://*:9200");
 }

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

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

相关文章

美妆行业在微信小程序中可以实现什么功能

随着移动互联网的发展,微信小程序作为一种轻量级的应用形态,越来越受到商家的青睐。对于美妆行业来说,微信小程序不仅可以提高品牌曝光率,提升用户体验,还可以通过各种功能实现销售转化。下面我们将介绍美妆行业在微信…

软件工程从理论到实践客观题汇总(头歌第一章至第八章)

一、软件工程课程概述 1、计算机软件的变化 2、实践准备-协同开发方法与平台 3、实践准备-群体化代码标注平台 4、实践准备-群体化学习平台 二、从程序到软件 1、程序及其质量 2、程序质量保证方法 3、程序质量分析方法 4、软件及其质量 5、开源软件 三、软件工程概述 1、…

通讯网关软件018——利用CommGate X2MQTT实现MQTT访问OPC Server

本文介绍利用CommGate X2MQTT实现MQTT访问OPC Server。CommGate X2MQTT是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,SCADA系统配置OPC Server,现在上位机需要通过MQTT Subscr…

ORACLE中SQL运算符的优先级

SQL运算符优先级: 注: 1、可以使用括号改变优先级顺序 2、可以看出OR的优先级最低,算术运算符的优先级最高 另:操作符优先级 * / - 1、乘除的优先级高于加减; 2、同一优先级运算符从左向右执行; 3、括号内的…

yolo_tracking中osnet不支持.pth格式,而model_zoo中仅有.pth

yolo_traking-7.0中REID模块用到了osnet,track.py中模型文件不支持.pth,而model_zoo中仅有.pth,改动代码太麻烦了,网上查到的.pth文件转化为.pt文件都需要读取网络架构,不太可能实现。 读取osnet_x0_25_msmt17.pth发现…

(高阶) Redis 7 第21讲 IO多路复用模型 完结篇

🌹 以下分享 Redis IO多路复用模型,如有问题请指教。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹 如有对阁下帮助,请👍点赞💖收藏🐱‍🏍分享😀 IO多路复用模型是什么 I/O:网络IO 多路:多个客户端连接(连接即套接字描述符,即socket或channel),指…

BJT晶体管

BJT晶体管也叫双极结型三极管,主要有PNP、NPN型两种,符号如下: 中间的是基极(最薄,用于控制),带箭头的是发射极(自由电子浓度高),剩下的就是集电极&#xff0…

蓝宝石(白宝石)镜片

蓝宝石 ( AL2O2 三氧化二铝 ) (注意透光波段 5um以下) 特此记录 anlog 2023年10月7日

解决:使用WileyNJDv5_Template模板时,无法生成pdf文件。

目录 问题: 解决办法: 检查过程: WileyNJDv5-Template模板链接:New Journal Design LaTeX template (wiley.com) 问题: 使用wileyNJDv5_Template模板时候,无法生成pdf文件。无论是使用texlivetexmaker还…

2023年中国石化行业节能减排发展措施分析:用精细化生产提高生产效率,降低能耗[图]

2022年,我国石油和化工行业克服诸多挑战取得了极其不易的经营业绩,行业生产基本稳定,营业收入和进出口总额增长较快,效益比上年略有下降但总额仍处高位。2022年,我国石油化工行业市场规模为191761.2亿元,同…

【Vue面试题七】、SPA (单页面) 首屏加载速度慢怎么解决?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:SPA首屏加载速度慢的怎么…

【Python_PySide2学习笔记(十八)】勾选按钮QCheckBox类的基本用法

勾选按钮QCheckBox类的基本用法 前言正文1、创建勾选按钮2、勾选按钮获取选中状态3、创建按钮组4、按钮组添加勾选按钮5、按钮组设置单选6、按钮组信号:选中状态改变7、按钮组获取所有勾选按钮7.1、获取勾选按钮对象7.2、获取勾选按钮文本7.3、获取勾选按钮ID7.4、按…

超越bash:让你的命令行更聪明

本周岛主给大家带来一款能够提高工作效率的神器——zsh 在今天的计算机领域,命令行终端是一个不可或缺的工具。尽管现代计算机的用户界面变得越来越友好,但对于高级用户来说,命令行终端仍然是一种更加高效、灵活的工作方式。在命令行终端中&…

进阶指针(五)—— 指针笔试题

✨博客主页:小钱编程成长记 🎈博客专栏:进阶C语言 🎈相关博文:进阶C语言(一)、进阶C语言(二)、进阶C语言(三)、进阶指针(四&#xff0…

问题即机会,中国充电服务商加速向上

10月4日,能链智电与香港特别行政区引进重点企业办公室(简称:“引进办”)达成合作,成为首批重点引进企业。 引进办是香港特区政府引进世界各地高潜力重点企业来港的窗口,从这则消息可以看出,新能…

OpenCV 13(模版匹配和霍夫变换)

一、模版匹配 所谓的模板匹配,就是在给定的图片中查找和模板最相似的区域,该算法的输入包括模板和图片,整个任务的思路就是按照滑窗的思路不断的移动模板图片,计算其与图像中对应区域的匹配度,最终将匹配度最高的区域…

三相PWM整流器有限集模型预测电流控制Simulink仿真模型

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

正点原子嵌入式linux驱动开发——U-boot移植

uboot的移植并不是说从零开始将uboot移植到所使用的开发板或者开发平台上。这个对于我们开发者来说基本是不可能的,这个工作一般是半导体厂商做的,半导体厂商负责将uboot移植到他们的芯片上,因此半导体厂商都会自己做一个开发板,这…

平台项目首页——左侧菜单栏实现(三)

这里写目录标题 一、页面布局设计二、左侧菜单栏设计1、注意2、使用组件1、导入组件2、注册组件3、使用组件 3、用户信息代码设计4、左侧菜单代码设计5、用户信息——注销登录和切换项目功能实现 三、嵌套路由实现1、配置home的嵌套路由(子路由)2、home中…

Python-将常用库写入到一个Python程序里面,后续使用直接导入这个文件即可,就相当于导入了所有的库,就不用每次都写一堆的import了

sys.path.append(rD:\Backup\Documents) # 上方代码中的这一句 是我的常用库 所在的文件路径 当然,文件名建议写英文(比如:Common_use_lib.py), 不要写:常用库... 我这里只是演示使用,方便理…