在 IIS 部署 .NET6 WebApi 应用

张开发
2026/5/22 15:59:53 15 分钟阅读
在 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-cRelease-rwin-x64 --self-containedfalse-oPublish/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) 已停止。除非万维网发布服务正在运行否则无法启动网站。解决方案按下 Win R输入services.msc回车。在服务列表中找到 “World Wide Web Publishing Service”。如果状态为“已停止”右键点击并选择“启动”。报错ERR_SSL_KEY_USAGE_INCOMPATIBLE这个错误是 Chrome、Edge 等现代浏览器为了强化安全策略而引入的根源在于 IIS 管理器生成的默认自签名证书缺少一个关键的密钥用法DigitalSignature。以管理员身份打开 Windows PowerShell运行以下命令New-SelfSignedCertificate-FriendlyNameYour Certificate Name-DnsNamelocalhost-KeyUsageDigitalSignature-CertStoreLocationcert:\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 中绑定新证书测试补充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 应用程序的启动、停止和回收让运维更省心。部署与配置要点在安装和配置时有几个关键点需要注意安装顺序很重要建议先安装好 IIS再安装 Hosting Bundle。如果顺序反了可能会遇到跨域或配置方面的问题此时通常需要卸载并重新安装 Hosting Bundle。重启 IIS 服务安装完成后建议重启 IIS 或整个服务器以确保所有环境变量和配置更改都已生效。验证安装是否成功检查 IIS 模块打开 IIS 管理器点击你的网站在“模块”功能中应该能看到名为AspNetCoreModuleV2的条目。配置应用程序池为你的网站创建应用程序池时在“.NET CLR 版本”设置中选择“无托管代码”。因为 ASP.NET Core 应用在独立的进程中运行不依赖 IIS 的 .NET 运行时。生产环境与 SDK在生产服务器上不需要安装 .NET SDK。SDK 主要用于开发、编译和发布而 Hosting Bundle 已经包含了运行应用所需的一切。总的来说.NET Core Hosting Bundle 是你在 Windows Server IIS 环境下部署 ASP.NET Core 应用的核心工具。它通过集成运行时的必要组件和关键的 IIS 反向代理模块让 .NET 应用能够在传统强大的 IIS 服务器上高效、稳定地运行。

更多文章