IIS 部署 .NET6 WebApi 应用的实现方式步骤实用指南
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“IIS 部署 .NET6 WebApi 应用的实现方法步骤”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
目录
- Step1、安装IIS管理器
- Step2、安装 Hosting Bundle
- Step3、代码打包发布
- Step4、IIS 设置网站
- Step5、设置 Https
- IIS 回收设置
- 补充:Hosting Bundle
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) 已停止。除非万维网发布服务正在运行,否则无法启动网站。
解决方案:
- 按下 Win + R,输入
services.msc,回车。 - 落到代码里,在服务列表中找到 “World Wide Web Publishing Service”。
- 若状态为“已停止”,右键点击并选择“启动”。
报错:
ERR_SSL_KEY_USAGE_INCOMPATIBLE
从实现思路看,这个错误是 Chrome、Edge 等现代浏览器为了强化安全策略而引入的,根源在于 IIS 管理器生成的默认自签名证书缺少一个关键的密钥用法:DigitalSignature。
以管理员身份打开 Windows PowerShell,运行以下命令:
New-SelfSignedCertificate -FriendlyName "Your Certificate Name" -DnsName "localhost" -KeyUsage DigitalSignature -CertStoreLocation cert:LocalMachineMy -NotAfter (Get-Date).AddYears(10)
命令参数说明:
- 在这个场景下,-FriendlyName “Your Certificate Name”:证书的显示名称,能够自定义,比如 “My Dev Certificate”。
- 实际处理时,-DnsName “localhost”:这是最重要的参数之一。指定证书要绑定的域名或主机名。如果你是借助 IP 地址(如 127.0.0.1)或具体计算机名访问网站,请务必将 localhost 替换为对应的值。
- 在这个场景下,-KeyUsage DigitalSignature:这是修复错误的关键。为证书添加浏览器强制要求的数字签名密钥用法。
- 从实现思路看,-CertStoreLocation cert:LocalMachineMy:将证书安装到本地计算机的“个人”证书存储中,这样 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 应用程序的启动、停止和回收,让运维更省心。
部署与设置要点
在安装和设置时,有几个关键点需留意:
- 安装顺序很重要:建议先安装好 IIS落到代码里,,再安装 Hosting Bundle。如果顺序反了,可能会遇到跨域或设置方面的问题,此时通常需卸载同时重新安装 Hosting Bundle。
- 重启 IIS 服务:安装完成后,建议重启 IIS 或整个服务器,以确保所有环境变量和设置更改都已生效。
- 验证安装是否成功:
- 检查 IIS 模块:打开 IIS 管理器,点击你的网站,在“模块”功能中,应该能看到名为
AspNetCoreModuleV2的条目。 - 设置应用程序池:为你的网站新建应用程序池时,在“.NET CLR 版本”设置中选择 “无托管代码”理解这一步时,。因为 ASP.NET Core 应用在独立的进程中运行,不依赖 IIS 的 .NET 运行时。
- 检查 IIS 模块:打开 IIS 管理器,点击你的网站,在“模块”功能中,应该能看到名为
- 生产环境与 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 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
您可能感兴趣的文章:
- iis部署前后端分离项目全过程(Vuet前端和.NET6后端)
- .Net6项目部署IIS步骤(图文)
- 部署.NET6项目到IIS
- 使.NET6在开发时兼容IIS
-
08.31
《豆豆打僵尸》特色玩法及资源获取
-
08.31
y8games游戏链接入口
-
08.31
y8游戏网官网入口
-
08.31
《豆豆打僵尸》养僵尸玩法
-
08.31
《绯石之心》所有黯灭天穹法则奥秘属性
-
08.31
y8游戏网站入口
-
- 《亿万光年》增加产能做法
- 08.31
-
- 《咸鱼之王》新叠盾流派阵容攻略
- 08.31
-
- 三国杀谋田豫技能台词分享
- 08.31
-
- 三国杀谋张郃技能台词分享
- 08.31
-
- 《全明星街球派对手游》巅峰赛经典街区玩法说明
- 08.31
-
- 《加勒比帝国》角色升星攻略
- 08.31
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏