IIS 部署 .NET6 WebApi 应用的实现步骤

 更新时间:2026年04月16日 09:49:50   作者:比特魔法师  
本文主要介绍了IIS 部署 .NET6 WebApi 应用的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Step1、安装IIS管理器

左下角放大镜搜索:服务器管理器

右上角,点击“管理”:

选择“添加角色和功能”:

直接“下一步”:

选择“基于角色或基于功能的安装”:

选中服务器:

勾选“Web服务器”:

勾选“.NET Framework 4.7 功能”:

执行安装之后,可以在放大镜搜索到“IIS”:

Step2、安装 Hosting Bundle

下载地址:

https://dotnet.microsoft.com/en-us/download/dotnet/6.0

安装:

重启服务器,查看模块:

已包含“ASP.NET Core Module v2”模块:

Step3、代码打包发布

dotnet publish v2.csproj -c Release -r win-x64 --self-contained false -o Publish/V1.0.0

参数解释:

  • -c Release:指定生成配置为 Release(优化版本,移除调试符号)。
  • -r win-x64:指定目标运行时为 Windows x64。
  • --self-contained false:不包含 .NET 运行时,依赖用户系统已安装的 .NET 环境。
  • -o Publish/V1.0.0:输出路径为 Publish/V1.0.0

最终效果:

  • 输出内容:仅应用程序文件(.exe、程序集 .dll)和第三方依赖项。
  • 体积:较小(仅应用代码)。

Step4、IIS 配置网站

右键添加网站:

名称随便填:

应用池配置:

测试:

日志:

Step5、配置 Https

这里使用自签名证书做演示,IIS面板打开“服务器证书”:

选择“创建自签名证书”:

随便填个名字:

生成的证书:

右键添加网站,这里注意使用“https”:

选择刚刚生成的证书:

启动报错:

万维网发布服务 (w3svc) 已停止。除非万维网发布服务正在运行,否则无法启动网站。

解决方案:

  1. 按下 Win + R,输入 services.msc,回车。
  2. 在服务列表中找到 “World Wide Web Publishing Service”。
  3. 如果状态为“已停止”,右键点击并选择“启动”。

报错:

ERR_SSL_KEY_USAGE_INCOMPATIBLE

这个错误是 Chrome、Edge 等现代浏览器为了强化安全策略而引入的,根源在于 IIS 管理器生成的默认自签名证书缺少一个关键的密钥用法:DigitalSignature。

以管理员身份打开 Windows PowerShell,运行以下命令:

New-SelfSignedCertificate -FriendlyName "Your Certificate Name" -DnsName "localhost" -KeyUsage DigitalSignature -CertStoreLocation cert:\LocalMachine\My -NotAfter (Get-Date).AddYears(10)

命令参数说明:

  • -FriendlyName “Your Certificate Name”:证书的显示名称,可以自定义,例如 “My Dev Certificate”。
  • -DnsName “localhost”:这是最重要的参数之一。指定证书要绑定的域名或主机名。如果你是通过 IP 地址(如 127.0.0.1)或具体计算机名访问网站,请务必将 localhost 替换为对应的值。
  • -KeyUsage DigitalSignature:这是修复错误的关键。为证书添加浏览器强制要求的数字签名密钥用法。
  • -CertStoreLocation cert:\LocalMachine\My:将证书安装到本地计算机的“个人”证书存储中,这样 IIS 才能识别并使用它。
  • -NotAfter (Get-Date).AddYears(10):将证书的有效期设置为10年,避免频繁更换的麻烦。

在 IIS 中绑定新证书:

测试:

IIS 回收配置

防止后台定时服务被IIS回收:

  • 步骤 1:打开应用程序池高级设置

打开 IIS 管理器。

在左侧选择 应用程序池,找到目标应用程序池并右键选择 高级设置

  • 步骤 2:关闭固定时间与内存回收

回收 部分: 固定时间间隔(分钟) → 设置为 0 ; 虚拟内存限制(KB) → 设置为 0 ; 专用内存限制(KB) → 设置为 0

这样可避免因时间或内存限制触发的自动回收。

  • 步骤 3:关闭空闲超时

进程模型 部分: 闲置超时(分钟) → 设置为 0

此项控制在无请求时是否终止工作进程,设为 0 表示永不因空闲而终止。

  • 步骤 4:可选优化

启动模式 设置为 AlwaysRunning,确保应用程序池在 IIS 启动后立即运行。

发生配置更改时禁止回收 设为 True,防止配置更改触发回收。

补充:Hosting Bundle

.NET Core Hosting Bundle 是微软官方提供的一个软件包,专门用于在 Windows 服务器上通过 IIS 托管和运行 ASP.NET Core 应用程序。你可以将它理解为一座桥梁,无缝连接了 ASP.NET Core 应用与 IIS 服务器。

核心组件与作用

这个安装包之所以关键,是因为它集合了让 ASP.NET Core 应用在 IIS 上运行所需的几乎所有核心组件:

组件名称主要作用
.NET Core 运行时 (.NET Core Runtime)提供了运行 .NET 应用程序所需的基础环境,包括垃圾回收器、即时编译器(JIT)和核心库等。
ASP.NET Core 模块 (ANCM / ASP.NET Core Module)这是一个关键的 IIS 模块。它充当了反向代理的角色,负责将来自 IIS 的请求转发给后台的 ASP.NET Core 应用(即 Kestrel 服务器),从而实现了 IIS 与应用的集成。
.NET Core 库 (.NET Core Library)提供了 .NET 应用程序运行所需的基础类库支持。

主要优势

相比单独安装运行时和其他组件,选择 Hosting Bundle 有几个明显的好处:

  • 简化部署流程:你不需要分别安装 .NET 运行时、ASP.NET Core 运行时和 IIS 模块,一个安装包就能搞定所有必备项,大大降低了部署的复杂性。
  • 确保兼容与稳定:这个捆绑包由微软官方发布和维护,确保了各个组件之间的版本兼容性,为生产环境的稳定运行提供了保障。
  • 自动集成与生命周期管理:安装后,它会自动在 IIS 中注册 AspNetCoreModuleV2 模块。同时,IIS 也能自动检测并管理 ASP.NET Core 应用程序的启动、停止和回收,让运维更省心。

部署与配置要点

在安装和配置时,有几个关键点需要注意:

  1. 安装顺序很重要:建议先安装好 IIS,再安装 Hosting Bundle。如果顺序反了,可能会遇到跨域或配置方面的问题,此时通常需要卸载并重新安装 Hosting Bundle。
  2. 重启 IIS 服务:安装完成后,建议重启 IIS 或整个服务器,以确保所有环境变量和配置更改都已生效。
  3. 验证安装是否成功
    • 检查 IIS 模块:打开 IIS 管理器,点击你的网站,在“模块”功能中,应该能看到名为 AspNetCoreModuleV2 的条目。
    • 配置应用程序池:为你的网站创建应用程序池时,在“.NET CLR 版本”设置中选择 “无托管代码”。因为 ASP.NET Core 应用在独立的进程中运行,不依赖 IIS 的 .NET 运行时。
  4. 生产环境与 SDK:在生产服务器上,不需要安装 .NET SDK。SDK 主要用于开发、编译和发布,而 Hosting Bundle 已经包含了运行应用所需的一切。

总的来说,.NET Core Hosting Bundle 是你在 Windows Server + IIS 环境下部署 ASP.NET Core 应用的核心工具。它通过集成运行时的必要组件和关键的 IIS 反向代理模块,让 .NET 应用能够在传统强大的 IIS 服务器上高效、稳定地运行。

到此这篇关于IIS 部署 .NET6 WebApi 应用的实现步骤的文章就介绍到这了,更多相关IIS 部署 .NET6 WebApi 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论