.NetCore项目在IIS中部署

Posted 乾坤容我静,万物任他行

tags:

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

 

本文实例环境及版本Win10、.NetCore3.1

一、概述

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

部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块,如果没有的话,可以去 https://dotnet.microsoft.com/download/dotnet 查看并选择版本下载。

 

 

下载完成后安装即可。安装完成后在IIS中的模块中会看到 AspNetCoreModuleV2。

 

 此处说明一下:

AspNetCoreModule(版本1)是一个IIS模块,它允许IIS运行ASP.NETCORE 1.x和2.x应用程序,当它们在.NetCore1.x和2.x(但不是.NetCore3.x和更高版本)中运行时,也可以在.NET框架上运行,而不是在.NetCore上运行。此版本在2019年1月停止使用并从ASP.NETGitHub repo中删除。今天使用V1的唯一原因是,如果您仍在运行.NetCore1.x应用程序。

AspNetCoreModuleV2 支持.NetCore 2.0及更高版本(包括.NetCore3.x、.NET 5、.NET 6等)。它还支持比V1更多的功能(例如自定义脱机消息)。

 

二、发布项目

 

 

 

 发布到指定目录下。然后再IIS中新建一个应用程序池,注意选择无托管代码。

 

 

 然后添加应用程序,选择项目的发布位置。具体的配置跟.NET Framework 一样,不再赘述。

 

 才疏学浅,相关文档等仅供自我总结,如有相关问题可留言交流谢谢。

 

以上是关于.NetCore项目在IIS中部署的主要内容,如果未能解决你的问题,请参考以下文章

c#一个解决方案里包含.netcore3.1和asp.net两个项目,能正常发布iis吗?

解决IIS长连接限制的坑,导致部署在IIS下的.NET Core项目假死

net core web 能部署到iis7么

IIS8反向代理实现80端口访问多个.NetCore程序

IIS 上的 .Net 5.0 Web API 部署问题

IIS在ASP.NET Core下的两种部署模式