ASP.NET Core 6部署到Windows Server 2019+IIS 10+SqlServer 2019过程记录

根据Ace的经销商课程练习的项目,用的Visual Studio 2022 + .NET 6 + SqlServer,前后端分离WebApi+Vue3,本文章只记录部署ASP.NET Core 6 WebApi项目的实战步骤:.

一,我用的腾讯云轻量服务器,先把服务器重装系统为Windows Server 2019

二,通过远程桌面连接进入Windows服务器,安装IIS 10。在安装IIS 10的过程中,我的习惯是要安装.NET Framework4.7功能,3.5那个版本就不用安装了,然后IIS安装时,把他所有的选项都全部勾选、安装。

三,安装ASP.NET Core Runtime 6,进入https://dotnet.microsoft.com/en-us/download/dotnet/6.0,选择ASP.NET Core Runtime 6.0.X下的Hosting Bundle,下载到服务器里,双击安装。

四,安装SqlServer 2019,进入https://msdn.itellyou.cn/,搜索sql server 2019,选择SQL Server 2019 Developer (x64) - DVD (Chinese-Simplified)版本,获取ed2k下载链接,在服务器里安装一个迅雷下载软件,然后用迅雷把SqlServer 2019开发版安装好。

五,安装SqlServer 2019的数据库管理工具SQL Server Management Studio (SSMS),微软官方免费提供,进入https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms,找到链接下载、安装、然后根据提示重启服务器。

六,把项目所需的数据库备份文件拷贝进服务器,恢复到SqlServer 2019里。

七,服务器里打开IIS,新建一个网站。注意,新建网站时,那个应用程序池可以新命名一个。

八,然后给新创建的应用程序池,设置为无托管代码,下面那个选经典或集成好像都没问题。注意,这里可能有坑。有些网友发现这里要选择经典,我没遇到过。

ASP.NET Core 6部署到Windows Server 2019+IIS 10+SqlServer 2019过程记录

九,运行网站,不出意外的话,会报错,提示HTTP 错误 500.19,说明网站目录权限不足, 需要给网站添加用户, 设置所有权限。

ASP.NET Core 6部署到Windows Server 2019+IIS 10+SqlServer 2019过程记录

十,选中网站的目录文件,点击右键→属性→安全,添加erveryone,然后给足权限。

ASP.NET Core 6部署到Windows Server 2019+IIS 10+SqlServer 2019过程记录

十一,按照以上的操作, 一般即可正常运行, 如出现不同的异常, 以下总结归纳:

ASP.NET Core 6部署到Windows Server 2019+IIS 10+SqlServer 2019过程记录

解决办法: 打开 C:\Windows\System32\inetsrv\config 路径下的 applicationHost.config 文件. 检查system.webServer节点下是否存在aspNetCore, 如下图所示:

ASP.NET Core 6部署到Windows Server 2019+IIS 10+SqlServer 2019过程记录

如果不存在, 可能导致的原因是本机未安装 .net Core runtime 运行时候, 这个时候登录一下网站, 安装开发时对应的 Runtime包

安装完成后, 默认该节点会在最下方, 如果安装完成后未添加, 手动在该节点下添加 : <section name="aspNetCore" overrideModeDefault="Allow" />

注意事项及方法:

1,部署IIS之前, 需要先安装IIS相关的功能, 然后安装对应的.Net Core 运行环境, SDK 与对应的Runtime运行时。

2,如仍出现错误, 打开 C:\Windows\System32\inetsrv\config 路径下的 applicationHost.config 文件 , 排查相关的节点是否已经存在。

3,根据windows 事件错误日志, 找到错误发生在什么节点, 

4,排查网站目录下 We.Config的相关配置, 或开启文件日志输出