.net6的IIS发布部署

Posted LZJHC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net6的IIS发布部署相关的知识,希望对你有一定的参考价值。

1.打开控制面板,打开程序

2.点击启动或关闭windows功能

 

3.在其中选择要设置的IIS功能

 

 4.重启IIS服务

5.发布项目

 

6.在开始菜单搜索IIS,点击IIS管理器

 

 

 7.右击网站,点击添加网站,进行网站配置

 

 8.可以自定义网站名称(可以是项目名,方便查询),物理路径就是项目发布生成的文件夹,端口是自定义,这里默认是80不能使用,注意端口号一定不能重复.主机名不能填,不然其他人不能访问

 

 9.点击目录浏览,设置为启用

 

 10.在应用程序池中,设置相关站点为无托管代码

 

 11.设置完成后,就可以浏览网站了

 

ASP.NET Core部署系列一:发布到IIS上

前言

  当构建一个ASP.NET Core应用程序并且计划将其运行在IIS中时,你会发现Core应用程序和之前版本的ASP.NET程序在IIS中的运行方式是完全不一样的。与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已。

回顾之前的ASP.NET的经典托管

技术图片

   在经典ASP.NET应用程序中,所有一切都托管在IIS工作进程中(w3wp.exe),这也被称为IIS应用程序池。ASP.NET程序被托管在应用程序池中,并且被按照IIS内建的ASP.NET托管特性所实例化。当请求从http.sys传入到ASP.NET应用程序管道时,本地运行时管理器会实例化一个代表应用程序的.NET运行时,同时引入HttpRuntime对象用来处理这个请求。来自http.sys的请求被派送到对应的应用程序池和HttpRuntime实例的托管站点。

ASP.NET CORE与IIS

技术图片

  ASP.NET Core则完全不同,它并不是运行在IIS的工作进程中,而是独立运行的。它运行于控制台应用程序之中,控制台中则运行了Kestrel Web服务器组件。Kestrel作为一款.NET Web服务器的实现,它在吞吐量性能方面做了很多工作。它可以快速将来自网络的请求接入到应用程序中,但是它仅仅是一个最基本的Web服务器。它没有类似IIS的Web管理服务,也没有IIS那么多的功能。

  ASP.NET Core程序独立运行在控制台应用程序中,并通过dotnet运行时命令调用。它并没有被加载到IIS工作进程中,但是IIS却加载了名为AspNetCoreModule的本地Module,这个Module用于执行外部的控制台程序。AspNetCoreModule是作为ASP.NET Core Server Hosting Bundle的一部分被安装在服务器上的。

  部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块,如果没有的话,点击这里进行下载并安装

技术图片

开始

一、安装IIS

  在控制面板→程序→启用或关闭Windows功能→勾选Internet Information Services以及Web管理工具下的IIS管理控制台

技术图片

二、发布项目

  发布我们建好的ASP.NET Core项目,然后选择IIS,新建一项发布配置

技术图片

技术图片

 

 技术图片

三、在IIS上绑定添加网站

  添加一个网站,设置一下名称,并将路径指向你刚才发布的文件夹,然后启动网站即可

技术图片

  设置应用程序池的.NET CLR版本为“无托管代码”,因为刚才也说了,IIS是作为一个反向代理的角色,并不需要它来托管代码

技术图片

技术图片

四、浏览网站

  这个时候出现了这个问题

技术图片

错误分析
IIS服务器上的.net core 运行时不是最新的,导致AspNetCoreModuleV2模块缺失或者报错

检查发现 项目的版本是 .netcore2.2 ,而运行时安装的为 .netcore runtime 2.1.6

查看程序 如果没有安装.netcore2.2 就需要安装

技术图片

技术图片

下载完成后安装

就可以打开网站了

技术图片

总结

 至此,整个IIS的搭建已经完成,作为个人的笔记记录备忘,同时也共享出来,不知道你是否有所收获。接下来会遇到什么样坑。不管怎样,你的每一步,回过头来看,都是值得的

 

以上是关于.net6的IIS发布部署的主要内容,如果未能解决你的问题,请参考以下文章

升级到 .NET 6 后 IIS 子应用程序未处理请求 - 返回 307

.NET 6.0 MVC 应用程序在 Windows 10 上的 IIS 中返回 404

windows server 2008下IIS反向代理设置 遇到的小坑

windows server 2008下IIS反向代理设置 遇到的小坑

windows server 2008下IIS反向代理设置 遇到的小坑

.net6 docker部署,以及问题解决(附Dokerfile)