IIS部署.NetCore/.Net8/.Net9项目(从装环境到配置Swagger)

一、介绍

随着.NetCore开源、以及版本的更新迭代,.NetCore的性能越来越好、功能也越来越丰富,作为纯后端提供Api已经变得越来越频繁,与之配套的接口组件Swagger也成为很多人的选择。下面介绍在IIS上部署Swagger的详细过程。

二、安装IIS服务器

Internet Information Services下的内容最好全部安装,我这里仅没装FTP相关的东西,如果大家需要的话可以自行安装。

三、安装.NetCore项目的IIS支持包

安装了HostingBundle包就不用再单独安装Runtime,安装成功后要重启IIS和重启电脑。

四、设置IIS应用程序池版本

无论是.Net6、.Net8项目我都改成了无托管代码(No Managed Code)。等Swagger首页能正常访问后,我把设置改回了v4.0,发现项目仍然能正常访问。我会再查一下两者的区别,暂时先用无托管代码。

五、设置IIS应用程序池是否启用32位应用程序

发布项目的时候如果是64位发布的,IIS部署的时候需 "启用32位应用程序" 要关闭掉,如果是32位的这里要开启。

六、访问时报错

这里会有两个常见问题,第一个是项目发布后ASPNETCORE_ENVIRONMENT为Production时默认会关闭swagger;第二个是通过IIS发布项目的默认访问的首页是 http://localhost:8001,如果我们的API项目使用了Swagger就会报404错误。

对第一个问题项目发布后往往默认为Production环境,我们将其手动修改为Development即可解决,打开发布到IIS的文件夹下的web.config文件,添加environmentVariables部分代码。对第二个问题应该访问完整的首页url: http://localhost:8001/swagger/api

复制代码
<aspNetCore processPath="dotnet" arguments=".\WebApiApp1.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development"/>
  </environmentVariables>
</aspNetCore>


七、总结

IIS部署.NetCore其实是个挺常见、不复杂的事,但部署项目这个操作不太会经常发生,以至于长时间不用的话有些细节就记不清楚了,所以我在这里做个总结整理,希望能对大家有所帮助。如果大家愿意点赞、收藏、评论,那我更是感激不尽。

相关推荐
海盗12342 天前
微软技术周报 ——2026-08-03
后端·python·microsoft·c#·.netcore
啊这啊这 六弦之首8 天前
.NET Core跨平台的奥秘[中篇]:复用之殇
.netcore
心念枕惊9 天前
.NET CORE 授权进阶-角色、策略与动态权限实现
java·前端·.netcore
完美火龙篇 四月的友10 天前
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
.net·.netcore
时代的狂1 个月前
如何理解 C# 的 async 和 await
c#·.netcore·async·await
尼米棕熊1 个月前
.NET CORE认证模块-注册方案与请求认证探究
.netcore
鸠摩智首席音效师2 个月前
如何在 macOS 上安装 .NET Core ?
macos·.netcore
宝桥南山2 个月前
Microsoft Agent Framework(MAF) - 如何将workflow或者A2A client转换成一个AI Agent
microsoft·ai·微软·aigc·.net·.netcore
滴滴答答哒3 个月前
.NET Core 基于 AOP + Polly 实现数据库死锁自动重试
数据库·.netcore·sqlsugar
.NET修仙日记3 个月前
.NET EFCore批量插入性能优化实战:30秒 → 0.5秒
性能优化·c#·.net·.netcore·微软技术·efcore·踩坑实录