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

相关推荐
van久3 天前
.Net Core 学习:Razor Pages中 HTML 表头字段的两种写法对比
学习·html·.netcore
武藤一雄3 天前
C# 万字拆解线程间通讯?
后端·微软·c#·.net·.netcore·多线程
武藤一雄4 天前
.NET中到底什么是SignalR (持续更新)
后端·微软·c#·asp.net·.net·.netcore·signalr
by__csdn4 天前
第二章 (.NET Core环境搭建)第二节( Visual Studio Code)
ide·vscode·c#·vue·asp.net·.net·.netcore
by__csdn4 天前
第二章 (.NET Core环境搭建)第三节( Visual Studio for Mac)
ide·kubernetes·c#·asp.net·.net·.netcore·visual studio
武藤一雄6 天前
C#:进程/线程/多线程/AppDomain详解
后端·微软·c#·asp.net·.net·wpf·.netcore
武藤一雄6 天前
C#:Linq大赏
windows·后端·microsoft·c#·.net·.netcore·linq
by__csdn6 天前
第一章 (ASP.NET Core入门)第三节( 认识.NET Standard)
后端·c#·asp.net·.net·.netcore·f#·vb.net
by__csdn6 天前
第一章 (ASP.NET Core入门)第一节( 认识.NET Core)
后端·c#·asp.net·.net·.netcore·f#·vb.net
by__csdn6 天前
第一章 (ASP.NET Core入门)第二节( 认识ASP.NET Core)
数据库·后端·c#·asp.net·.net·.netcore·f#