微软在ASP.Net Core 1.0后Web应用开始支持跨平台,支持Linux平台,不直接完全依赖Win server + IIS了。后面.Net Core应用使用自带的 Kestrel 服务器运行Web应用,IIS 或 Nginx方式方向代理到 Kestrel 服务器上。
以下为Win Server服务器发布 ASP.NET Core 应用到 IIS 的操作步骤
环境
Win server 2012R2
Net Core 3.1
Win server 2012 IIS管理器
操作步骤
- Win server安装.Net Core模块
官网下载ASP.Net Core模块 ASP.Net Core Module请添加链接描述 模块,选择 Current .NET Core Hosting Bundle installer (direct download) 直接下载。
安装后,进入IIS,找到模块查看:
- 重启生效
安装好.Net Core模块使之生效。重启OS系统或执行如下命令生效。net stop was /y net start w3svc
- 发布Web应用
发布应用程序时,注意IIS应用程序池的.Net CLR版本选择“无代码托管” ,如下图所示:
这里WinServer的 IIS 只是作为一个反向代理服务器,并不真正处理任何请求,所有请求都会转发给后端.Net Core的 Kestrel 服务器来处理。
以上参考:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.1#install-the-net-core-hosting-bundle