ASP.Core3.1 WebAPI 发布到IIS

本篇文章简述如何在IIS中发布你的.Core 程序

1.打包

首先你要打包好你程序,如果你是Visual Studio开发的程序,那你右击你的项目点击发布

如果你是Visual Code 开发的,那你在你的终端切换到你的目录然后执行命令

xml 复制代码
dotnet publish --configuration Release

然后可以在你的项目bin\Release\netcoreapp3.1\publish找到你的发布版本

如果你想发布到指定的路径

xml 复制代码
dotnet publish --configuration Release --output 你的路径

2.配置服务器

首先你要运行在IIS上面的话,因为是Asp.Core所以我们需要添加一个应用程序池,,NET Framework 版本选择.无代码托管

这里避坑,因为是.Core项目,所以应用池默认设置要把32位应用程序改为False,否则项目会提示:Http 500 错误

然后需要安装一个IIS的模块,必须要有这个模块才可以运行

就是在你的Core版本下面的,我这里以3.1版本为例子,其他版本同理

然后把你项目的SDK跟运行时都安装上

然后运行命令检测一下你的服务器是不是环境正确,一般不正确就重新安装一下

xml 复制代码
 dotnet --list-runtimes

因为我们的项目是Restful API,所以采用https

所以需要启动Kestrel服务器时需要配置HTTPS端点,指定服务器证书,并且默认的开发者证书

所以我们在命令行执行命令

运行以下命令来生成开发者证书:

xml 复制代码
 dotnet dev-certs https

如果你的操作系统是Windows或macOS,并且你想信任该证书,可以运行以下命令来信任证书:

xml 复制代码
 dotnet dev-certs https --trust

3.配置IIS

首先我们在我们的IIS服务器新建一个自建证书,后期生产环境有SSL证书直接用你的SSL证书就行,就不需要自建

然后添加一个网站,选择你刚刚的项目路径,应用程序池选择我们刚刚添加的那个无代码托管的应用程序池,其他根据自己的需求配置

然后运行项目

到这项目基本发布好了

这里在避坑一下,原先以为到这里就好了,当时发现调用非Get Post请求的接口的时候提示:405错误

一开始我以为是HTTP请求谓词的原因,找遍IIS的配置都没发现问题

最后发现是"WebDAV,如果你的项目用不到"WebDAV的话就删除,要是你的IIS有其他"WebDAV的项目,那就在你的web.config

添加

xml 复制代码
 <modules runAllManagedModulesForAllRequests="true">  
  <remove name="WebDAVModule" />  
</modules>  
复制代码
![在这里插入图片描述](https://img-blog.csdnimg.cn/8c8423540a5245d0bddba37f67757aa0.png)

至此,你的,CoreAPI 程序已经成功发布到IIS上面,个人还是比较推荐用nginx,因为毕竟.Core都是跨平台,下次出如果在nginx环境下搭建你的Core程序

相关推荐
ccut 第一混6 小时前
c#联合Halcon进行OCR字符识别(含halcon-25.05 百度网盘)
c#·ocr·halcon
时光追逐者9 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 49 期(2025年8.1-8.10)
c#·.net·.netcore
★YUI★10 小时前
学习游制作记录(背包UI以及各种物品的存储)8.12
学习·游戏·ui·unity·c#
切糕师学AI10 小时前
在 .NET Core 5.0 中启用 Gzip 压缩 Response
.netcore
专注VB编程开发20年10 小时前
IIS Express中可以同时加载并使用.net4.0和.NET 2.0的 DLL
c++·windows·microsoft·c#·vb.net
悦人楼12 小时前
当C#遇上Notepad++:实现GCode可视化编辑的跨界实践
java·c#·notepad++
大飞pkz13 小时前
【C#】正则表达式
开发语言·正则表达式·c#·string·字符串匹配·高效字符串匹配
fs哆哆17 小时前
在VB.net中,委托Action和Func,结合LINQ和Lambda表达式的应用
c#·.net·linq
向宇it17 小时前
【unity实战】在Unity中实现不规则模型的网格建造系统(附项目源码)
游戏·3d·unity·c#·游戏引擎
CodeCraft Studio18 小时前
3D文档控件Aspose.3D实用教程:在 C# 中将 3MF 文件转换为 STL
c++·3d·c#