IIS上部署.netcore WebApi项目及swagger

.netcore项目一般是直接双击exe文件,运行服务,今天有个需求,需要把.netcore项目运行在IIS上,遇到了一个小坑,在这里记录一下。

安装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 core web api项目需要安装环境,IIS默认是不支持的,支持环境需要安装net core运行时: dotnet-hosting-3.1.32-win.exe,原因就是前面概述中讲的,.net core项目不是由iis工作进程(w3wp.exe)托管,需要先下载dotnet-hosting-3.1.32-win.exe

下载地址:下载 .NET Core 3.1

总之下载的就是这个,因为我的项目框架就是.net3.1,所以下的就是这个,如果你是.net6或7那就要对应的,总之是与你的项目框架是什么版本有关,要对应起来。

然后点击运行安装,然后在IIS工具可以看到

AspNetCoreModuleV2必须要。模块中存在就说明环境已经安装好了,没有的话多重启几下IIS 或者重新再装一次。

应用程序池选择无托管代码,集成

到这里本次遇到的坑要来了,如果你的swagger在本地运行正常,程序考过来放到站点中,运行是没问题的,第一次部署要先发布,把发布后的文件拷到站点下可正常预览,我把debug下的文件考过来,运行一直报错,提示404,当时想着测试环境,发布还要浪费时间,直接把debug考过去算了。。。第一次发布之后,后面有修改,把debug的dll考过去时没问题的。

相关推荐
鸠摩智首席音效师7 天前
如何在 macOS 上安装 .NET Core ?
macos·.netcore
宝桥南山11 天前
Microsoft Agent Framework(MAF) - 如何将workflow或者A2A client转换成一个AI Agent
microsoft·ai·微软·aigc·.net·.netcore
滴滴答答哒21 天前
.NET Core 基于 AOP + Polly 实现数据库死锁自动重试
数据库·.netcore·sqlsugar
.NET修仙日记24 天前
.NET EFCore批量插入性能优化实战:30秒 → 0.5秒
性能优化·c#·.net·.netcore·微软技术·efcore·踩坑实录
Kimhill张1 个月前
.net core8 WPF 依赖注入(DI)
wpf·.netcore
wangl_921 个月前
C# / .NET 在工业环境中的优势
开发语言·c#·.net·.netcore·.net core·visual studio
豆豆1 个月前
信创环境下CMS国产化适配实践:以.NET Core路线为例的技术验证
.netcore·cms·信创·国产化·建站系统·内容管理系统·网站管理系统
时光追逐者1 个月前
C#/.NET/.NET Core技术前沿周刊 | 第 70 期(2026年5.01-5.10)
c#·.net·.netcore
van久1 个月前
Day20:AutoMapper 对象映射
.netcore
van久1 个月前
Day23 登录 + 颁发 Token(DDD 四层架构 + 企业标准)
.netcore