ASP.NET Core 6 基础入门系列(14) 项目发布与IIS部署

系列目录     【已更新最新开发文章,点击查看详细】
  • ASP.NET Core 6 基础入门系列(13) Web 服务器介绍
  • ASP.NET Core 6 基础入门系列(12) 项目的多种启动方式及问题
  • ASP.NET Core 6 基础入门系列(11) 项目结构详解之项目入口Program.cs 
  • ASP.NET Core 6 基础入门系列(10) 项目结构详解之appsettings.json
  • ASP.NET Core 6 基础入门系列(9) 项目结构详解之launchSettings.json
  • ASP.NET Core 6 基础入门系列(8) 项目结构详解之MVC
  • ASP.NET Core 6 基础入门系列(7) 项目结构详解之wwwroot
  • ASP.NET Core 6 基础入门系列(6) 项目结构详解之依赖项
  • ASP.NET Core 6 基础入门系列(5) 项目结构详解之项目文件管理
  • ASP.NET Core 6 基础入门系列(4) 项目结构简介
  • ASP.NET Core 6 基础入门系列(3) 新建 ASP.NET Core MVC 6.0 项目 
  • ASP.NET Core 6 基础入门系列(2) 开发环境准备
  • ASP.NET Core 6 基础入门系列(1) ASP.NET Core 6 简介

  在 .NET Framework 时代的 ASP.NET Web 项目的部署只有 Windows Server操作系统上支持的唯一IIS服务器,到了.NET Core 跨平台时代,IIS 在 Windows Server 操作系统上同样支持 ASP.NET Core Web 项目的部署。

使用 Visual Studio 发布 ASP.NET Core 项目

按照如下步骤进行发布

关于【设置】中的每一个选项的具体含义,在后续博客中会做详细的介绍,本篇暂时跳过。

至此发布完成。

ASP.NET Core 应用针对IIS部署依赖于一个IIS针对ASP.NET Core的扩展模块。

ASP.NET Core Module

       ASP.NET Core 模块 是 Windows系统中本机 IIS 模块,用于处理 IIS 和进程内 IIS HTTP 服务器或 Kestrel 之间的本机 IIS 请求。

  lIS其实也是按照管道的方式来处理请求的,但是IIS管道和ASP.NET Core中间件管道有本质的不同。对于部署在IIS中的Web应用来说,从最初接收到请求到最终将响应发出去,这段处理流程被细分为一系列固定的步骤,每个步骤都具有一个或者两个(前置+后置)对应的事件或者回调。我们可以利用自定义的Module注册相应的事件或者回调,并在适当的时机接管请求。按照自己希望的方式对它进行处理。
  llS提供了一系列原生(Native)的Module。我们也可以使用任意.NET语言编写托管的Module,整合 IIS 和 ASP.NET Core 的 ASP.NET Core Module 就是一个原生的 Module。它利用注册的事件将请求从IIS管道中拦截下来,并转发给 ASP.NET Core 管道进行处理。相应的安装包从官方网站下载:https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0。

下载【Hosting Bundle】到本地之后开始安装,安装完成后到控制面板中查看

IIS部署

1、新建应用程序池

“.NET CLR 版本”下拉框中必须选择“无托管代码”。必须将【Hosting Bundle】程序安装成功后才能选择到“无托管代码”选项。

2、新建站点

 

(1)站点名称写一个有具体含义的名称即可

(2)应用程序池选择第1步中新建的“DotNet6_Web_Study”

(3)物理路径指向发布目录

(4)配置一个端口号

3、访问站点

浏览器中访问正常,表明发布与部署工作全部正确。

 

再回到IIS管理器中

(1)点击“DotNet6_Web_Study”站点

(2)点击右侧的“处理程序映射”,双击打开列表,可看到已启用的分组中包含了针对 aspNetCore 应用的处理程序为 AspNetCoreModuleV2 模块

 

在下一篇博客《ASP.NET Core 6 基础入门系列(15) ASP.NET Core 在IIS下部署的两种进程托管模型》中详细介绍进程内托管模型与进程外托管模型。


参考文献:

  • 《使用 IIS 在 Windows 上托管 ASP.NET Core》https://learn.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/?view=aspnetcore-6.0
  • 《用于 IIS 的 ASP.NET Core 模块 (ANCM)》https://learn.microsoft.com/zh-cn/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-6.0
系列目录     【已更新最新开发文章,点击查看详细】

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

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

相关文章

ASP.NET Core 6 基础入门系列(1) ASP.NET Core 6.0 简介

系列目录 【已更新最新开发文章,点击查看详细】预备知识1: C#5、C#6、C#7、C#8、C#9、C#10 预备知识2: .NET 对比 .NET Framework 预备知识3: ASP.NET Core 概述 预备知识4: ASP.NET Core 与 ASP.NET 宏观对比 预备知识5: ASP.NET 请求处理机制 预备知识6: AS…

老年人1

用servlet构建一个javaweb项目并配置好环境

数据类型拓展

数据类型扩展 整数拓展 整数拓展:进制 二进制0b开头 十进制 八进制0开头 十六进制0x开头public class Demo03 {public static void main(String[] args) {//整数拓展: 进制 二进制0b开头 十进制 八进制0开头 十六进制0x开头int i =10;int i2 =010…

寒假打工记

通过联系老师和亲戚获得了家教途径 以下是于中介的沟通总结: 找工作的话尽量不要通过中介简绍,会潜在收取大量的费用,导致工作收益太低,带三个高一学生数学2小时100,不足以提供食宿费;此外还应事先谈好薪资结算时间,以免拖欠。 以下是与学生家长的沟通总结: 与家长沟通…

亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!

之前介绍过在IDEA中使用DeepSeek的方案,但是很多人表示还是用的不够爽,比如用CodeChat的方案,只支持V3版本,不支持带推理的R1。想要配置R1的话有特别的麻烦。作者:程序员 Hollis之前介绍过在IDEA中使用DeepSeek的方案,但是很多人表示还是用的不够爽,比如用CodeChat的方案…

Vscode中Eigen库的导入问题

Vscode中Eigen库的导入问题.Vscode中Eigen库的导入问题 在Vscode中,C++外部库(这里为Eigen)的导入问题主要有库的zip文件下载、在c_cpp_properties.json和tasks.json文件中进行路径配置。另外,如果运行代码使用Code Runner插件,还需要在Code Runner中进行路径配置(即使在…

最新更新!扣子(Coze)接入地表最强DeepSeek-R1大模型,超全攻略,手把手教学,完全免费教程

‍ 最新消息,国产地表最强大模型可以接入Coze平台了,今天斜杠君为大家带来了最细接入攻略,大家快学起来吧~ 备注:需要登录专业版火上引擎接入,开通专业版的同学需要开通一下。 接下来,话不多说,斜杠君用最简单的方式教给大家。 大家可以关注收藏,以免之后找不到,而且也…

1.如何在python中安装playwright

1.如何在python中安装playwright 打开pycharm,进入终端,输入如下的2个命令行代码即可自动完成playwright的安装 pip install playwright ——》在python中安装playwright第三方模块 playwright install ——》安装playwright所需的工具插件和所支持的浏览器 看到这里,是否想…

最新扣子(Coze)案例教程:DeepSeek 图像生成,用扣子应用打造超萌表情包生成器,手把手教学,完全免费教程

上一篇文章和大家分享了如何把DeepSeek-R1接入到扣子智能体中进行使用,这篇教程让我们来应用一下DeepSeek,使用DeepSeek结合工作流中的图像生成节点,打造一个表情包生成器的应用。 应用作用:输入一个人物或动物主题,生成一组表情包。 首先我们来看一下生成后的效果: 图像…

我悟了!原来本地图片预览还能这样搞

在网页开发中,经常会遇到需要让用户上传图片并在上传前进行预览的需求。这样做的好处显而易见:用户可以立即看到自己选择的图片是否正确,避免了不必要的上传和服务器资源浪费,提升了用户体验。Hey, 我是 Immerse 本文首发于 【沉浸式趣谈】,我的个人博客 https://yaolifen…

octave画高通滤波、超前,滞后补偿器的幅频响应图

octave代码非常简单:pkg load control s=tf(s); k=0.5; sysG1=k*(0.005*s)/(0.005*s+1); sysG2=k*(0.8*s+1)/(0.1*s+1); sysG3=k*(s+1)/(5*s+1); figure bode(sysG1) figure bode(sysG2) figure bode(sysG3)也可以借助循环,看如下代码:1 pkg load control2 s=tf(s);3 k=0.5;…

frame切换/窗口切换

frame切换/窗口切换 切换到frame点击这里,边看视频讲解,边学习以下内容 请大家点击这里,打开这个链接 如果我们要 选择 下图方框中 所有的 蔬菜,使用css选择,怎么写表达式? 当然,要先查看到它们的html元素特征大家可能会照旧写出如下代码:from selenium import webdriv…