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

相关推荐
csdn_aspnet1 天前
在 ASP.NET CORE 中上传、下载文件
后端·asp.net·.netcore
lixww.cn1 天前
.NET Core FluentAPI
.netcore
Libby博仙2 天前
asp.net core webapi中的数据注解与数据验证
数据库·asp.net·.netcore
Libby博仙2 天前
.net core三种依赖注入方式,原生的依赖注入器,scrutor,autofac
网络协议·rpc·.netcore
亦世凡华、2 天前
从CRUD到高级功能:EF Core在.NET Core中全面应用(一)
数据库·经验分享·.netcore·ef core
Libby博仙2 天前
asp.net core中的 Cookie 和 Session
后端·c#·asp.net·.netcore
Libby博仙2 天前
什么是.net framework,什么是.net core,什么是.net5~8,版本对应关系
.netcore
Libby博仙3 天前
创建.net core 8.0项目时,有个启用原生AOT发布是什么意思
microsoft·asp.net·.netcore
Libby博仙4 天前
ASP.NET CORE 依赖注入的三种方式,分别是什么,使用场景
数据库·后端·asp.net·.netcore