在 .NET 开发体系里,IIS 一直是部署 WebApi 的主力工具。
很多人接口写得很熟练,但真正涉及部署时,却容易卡在环境、权限、证书这些细节上。
今天我们从 0 到 1,把 .NET 6 WebApi 部署到 IIS 上跑起来,同时聊聊它适合做什么、不适合做什么。
一、环境准备
部署前,先确认三件事:
1️⃣ 已安装 IIS
控制面板 → 启用或关闭 Windows 功能 → 勾选:
-
Internet Information Services
-
Web 管理工具
-
万维网服务
-
应用程序开发功能

安装完成后访问:
http://localhost
能看到默认页面说明成功。
2️⃣ 安装 .NET 6 Hosting Bundle
这是最关键的一步。
如果服务器没有安装对应版本的 Hosting Bundle,接口基本都会报:
HTTP Error 500.30 - ANCM In-Process Start Failure
下载地址(.NET 6):

3️⃣ WebApi 已发布为 Release
在 Visual Studio 中:
右键项目 → 发布 → 文件夹 → 选择发布路径
发布完成后会得到:
-
xxx.dll
-
web.config
-
wwwroot
这就是 IIS 要指向的物理目录。

二、在 IIS 中创建站点
打开 IIS 管理器:
网站 → 右键 → 添加网站
配置如下:
-
物理路径:选择刚才发布后的文件夹
-
端口:例如 80(测试环境)
-
应用程序池:默认即可(.NET Core 不依赖传统 CLR)

完成后访问:
http://localhost:80/swagger
如果能打开 Swagger 页面,说明部署成功。
三、常见问题排查
❌ 500.30 启动失败
大概率是没有安装 Hosting Bundle,或者版本不匹配。
❌ 403 无权限访问
给站点文件夹添加权限:
-
IIS_IUSRS
-
或 Everyone(测试环境可用)
生产环境建议精细化控制权限。
❌ 端口冲突
执行:
netstat -ano
查看端口是否被占用。
四、IIS 部署 WebApi 的优势
在 Windows 服务器环境下,IIS 部署 WebApi 仍然是非常稳妥的方案。
1️⃣ 集成度高
与 Windows 深度整合,无需额外学习 Linux 运维体系。
2️⃣ 稳定成熟
应用程序池回收机制完善,长期运行稳定。
3️⃣ 权限体系清晰
基于 Windows 账户体系控制访问权限,安全性高。
4️⃣ 操作可视化
对不熟悉服务器命令行的人非常友好。
五、那 IIS 适合部署 Vue 吗?
结论:不太理想。
原因很简单。
Vue 属于单页应用(SPA),它需要:
-
URL Rewrite 重写规则
-
处理 history 路由模式
-
各种重定向配置
-
applicationHost.config 相关调整
如果不正确配置,刷新页面直接 404。
IIS 本质上更偏向传统 Web 服务,并不是为现代前端应用优化的服务器。
简单静态页面还可以,但复杂前端项目维护成本较高。
如果是前后端分离项目,通常会采用:
👉 IIS 负责 WebApi
👉 Nginx 负责前端静态资源与反向代理
这才是更主流的生产架构。
六、关于 HTTPS 的说明
本文演示采用的是 HTTP 测试部署方式。
但在生产环境中,必须启用 HTTPS。
尤其是涉及:
-
登录
-
Token 传输
-
用户数据
-
支付接口
如果你有部署 HTTPS 的实际需求,可以在评论区留言。
我可以单独整理一期完整内容,包括:
-
SSL 证书类型说明
-
免费证书申请流程
-
IIS 绑定证书步骤
-
强制 HTTP 跳转 HTTPS
-
常见证书报错排查
-
多域名 / 泛域名场景处理
当系统真正对外开放时:
HTTP 只是开发阶段的选择,HTTPS 才是上线的入场券。