目录
- 第一部分:IIS 的安装
- 1 通过“启用或关闭 Windows 功能”安装
- 2 验证安装是否成功
- 第二部分:IIS 的基本配置
- 1 打开 IIS 管理器
- 2 配置默认网站
- 3 理解 IIS 的核心概念(网站、应用程序、应用程序池)
- 第三部分:部署一个静态网站
- 1 准备网站文件
- 2 在 IIS 中创建新网站
- 3 浏览你的网站
- 第四部分:部署一个动态网站(如 ASP.NET)
- 1 安装 .NET 运行时
- 2 配置应用程序池
- 3 部署 ASP.NET 项目
- 第五部分:常见问题与高级配置
- 1 解决端口占用问题(80/443)
- 2 配置 SSL 证书(HTTPS)
- 3 设置目录浏览
- 4 配置默认文档
- 5 IIS 重启与停止
- 第六部分:总结与最佳实践
第一部分:IIS 的安装
IIS 在 Windows 中是作为一项“可选功能”存在的,默认不安装。

1 通过“启用或关闭 Windows 功能”安装
-
打开功能窗口:
- 在 Windows 搜索栏中输入
控制面板并打开。 - 将“查看方式”改为“大图标”或“小图标”,然后找到并点击 “程序”。
- 在“程序和功能”下,点击 “启用或关闭 Windows 功能”。
- 在 Windows 搜索栏中输入
-
勾选 IIS 组件:
- 在弹出的窗口中,找到并展开 “Internet Information Services”。
- 为了完整的功能,建议勾选以下默认项:
- Web 管理工具
IIS 管理控制台:这是管理 IIS 的图形界面,必须勾选。
- World Wide Web 服务
应用程序开发功能:根据你的需求选择。ASP.NET:如果需要运行 .NET 网站,必须勾选。ASP:如果需要运行经典 ASP 网站。CGI:如果需要运行 CGI 程序。
常见 HTTP 功能:这是核心功能,默认已勾选大部分,包括HTTP 重定向、自定义错误、默认文档、目录浏览、HTTP 错误、(提供 HTML, CSS, JS, 图片等服务)。健康和诊断:如请求监控、日志记录。安全性:如请求筛选、IP 地址和域限制。
- Web 管理工具
-
点击“确定”安装:
系统会自动从 Windows 更新下载所需的文件并完成安装,这可能需要几分钟时间,安装完成后,会提示你重启计算机(通常不需要立即重启,可以稍后再进行)。
(图片来源网络,侵删)
2 验证安装是否成功
安装完成后,可以通过以下方式验证:
- 使用 IIS 管理器
- 按
Win + R键,输入inetmgr,然后按回车。 - 如果成功打开 “Internet Information Services (IIS) 管理器” 窗口,说明安装成功。
- 按
- 在浏览器中访问
- 打开任意浏览器(如 Chrome, Edge)。
- 在地址栏输入
http://localhost或http://127.0.0.1。 - 如果能看到一个 IIS 7 欢迎页,说明 IIS 已经正常运行。
第二部分:IIS 的基本配置
1 打开 IIS 管理器
如上所述,按 Win + R,输入 inetmgr 并回车,这是你配置和管理 IIS 的主要工具。
2 配置默认网站
IIS 安装后会自动创建一个名为 “Default Web Site” 的网站,它监听所有 IP 地址的 80 端口,这个网站的物理路径默认是 C:\inetpub\wwwroot。
- 物理路径:网站文件存放的实际文件夹,默认
C:\inetpub\wwwroot下的iisstart.htm文件就是欢迎页的来源。 - 绑定:网站如何被访问,默认绑定的是
http://:80/,意味着通过 HTTP 协议,在 80 端口访问本机时,就会显示这个网站。
3 理解 IIS 的核心概念
-
网站:
(图片来源网络,侵删)- 一个独立的 Web 应用程序,拥有自己的绑定(IP、端口、主机头)和物理路径。
- 你可以创建一个名为 "MyBlog" 的网站,绑定到
http://myblog.local:8080,路径指向D:\MyBlog\files。
-
应用程序:
- 位于网站内部的一个逻辑单元,它拥有一个独立的“应用程序池”,可以与网站的其他部分隔离。
- 在你的 "MyBlog" 网站下,可以创建一个名为 "Admin" 的应用程序,指向
D:\MyBlog\admin目录,这样,Admin 部分可以运行在不同的 .NET 版本下。
-
应用程序池:
- 这是 IIS 中最重要的概念之一,它是一组 worker processes (w3wp.exe),负责处理一个或多个应用程序的请求。
- 隔离性:不同的应用程序池运行在不同的进程中,一个应用程序池崩溃不会影响其他应用程序池中的应用程序。
- 资源管理:可以为每个应用程序池单独设置 .NET Framework 版本、托管管道模式、回收策略、CPU 限制等。
- 默认池:
DefaultAppPool是最常用的,通常用于运行 .NET 4.x 或更高版本的应用程序。
第三部分:部署一个静态网站
假设你有一个简单的 HTML 网站,文件结构如下:
MyStaticSite/
├── index.html
└── css/
└── style.css
1 准备网站文件
- 在你的电脑上创建一个文件夹,
D:\MyStaticSite。 - 将你的
index.html和css文件夹复制到D:\MyStaticSite中。
2 在 IIS 中创建新网站
-
打开 IIS 管理器。
-
在左侧的“连接”窗格中,右键点击 “网站”,选择 “添加网站...”。
-
填写网站信息:
- 网站名称:输入一个易于识别的名称,如
MyStaticSite。 - 物理路径:点击右侧的浏览按钮,选择你刚才创建的文件夹
D:\MyStaticSite。 - 类型:保持默认的
http。 - IP 地址:默认为
全部未分配,表示监听所有可用 IP。 - 端口:默认为
80,80 端口已被占用(例如被 IIS 默认网站或其他程序占用),可以改为其他端口,如8080。 - 主机名:留空,如果需要通过域名访问,这里填写域名(如
www.mysite.com),并需要配置 DNS 解析。
- 网站名称:输入一个易于识别的名称,如
-
点击 “确定”。
3 浏览你的网站
- 在 IIS 管理器中,选中你刚刚创建的
MyStaticSite网站。 - 在右侧的“操作”窗格中,点击 “浏览 :80” (或你设置的端口)。
- 浏览器应该会自动打开并显示你的
index.html页面,如果样式没有加载,请检查index.html中引用 CSS 路径是否正确(应使用相对路径)。
第四部分:部署一个动态网站(如 ASP.NET Core)
以部署一个 ASP.NET Core Razor Pages 项目为例。
1 安装 .NET 运行时
IIS 本身不直接运行 .NET Core 应用。.NET Core 应用是作为独立的进程运行的,IIS 通过一个名为 ASP.NET Core Module 的模块来反向代理请求给这个进程。
- 访问 .NET 下载页面。
- 下载并安装与你项目版本匹配的 .NET Desktop Runtime 或 .NET Runtime。
2 配置应用程序池
ASP.NET Core 应用不能在“集成”模式的应用程序池中运行,它需要一个“无托管代码”的应用程序池。
- 在 IIS 管理器左侧,点击 “应用程序池”。
- 在右侧“操作”窗格中,点击 “添加应用程序池...”。
- 名称:输入你的项目名称,如
MyAspNetAppPool。 - .NET CLR 版本:选择 “无托管代码”。
- 托管管道模式:选择 “集成”。
- 点击 “确定”。
3 部署 ASP.NET 项目
-
发布项目:
- 在 Visual Studio 中,右键你的项目 -> 发布。
- 选择 “文件夹” 作为目标,然后点击“发布”。
- 这会生成一系列文件,包括
.exe,.dll,web.config等,到一个发布文件夹(如bin\Release\net6.0\publish)。
-
在 IIS 中创建网站:
- 右键“网站” -> “添加网站...”。
- 网站名称:
MyAspNetSite。 - 物理路径:选择你的项目发布文件夹。
- 应用程序池:选择你刚刚创建的
MyAspNetAppPool。 - 端口:可以选择 80 或其他。
- 点击 “确定”。
-
配置
web.config:- IIS 会自动识别
web.config文件,并根据其中的<aspNetCore>配置来启动你的应用。 - 关键配置是
processPath,它指向你的应用程序的可执行文件(通常是dotnet.exe),arguments指向你的应用 DLL(.\YourApp.dll)。 - 你通常不需要手动修改这个文件,Visual Studio 发布时会自动生成正确的配置。
- IIS 会自动识别
-
浏览网站:
- 选中
MyAspNetSite,点击“浏览”,你的 ASP.NET Core 应用就应该运行起来了。
- 选中
第五部分:常见问题与高级配置
1 解决端口占用问题(80/443)
如果你尝试创建网站时使用 80 或 443 端口,提示“该端口已被占用”,原因可能是:
- IIS 默认网站:停止或删除默认网站。
- 其他程序:IIS、Skype、TeamViewer、一些杀毒软件等可能会占用 80 端口。
- 解决方法:打开命令提示符(管理员),运行
netstat -ano | findstr :80查看占用 80 端口的进程 ID (PID),然后打开任务管理器,在“详细信息”选项卡中找到对应 PID 的进程并结束它。
- 解决方法:打开命令提示符(管理员),运行
2 配置 SSL 证书(HTTPS)
为网站启用 HTTPS 是非常重要的。
-
获取证书:
- 开发/测试:可以使用 IIS 创建一个“自签名证书”。
- 生产环境:从受信任的证书颁发机构 购买,或使用 Let's Encrypt 等免费服务。
-
在 IIS 中绑定证书:
- 在 IIS 管理器中,选中你的网站。
- 在右侧“操作”窗格中,点击 “绑定...”。
- 在“网站绑定”窗口中,点击 “添加...”。
- 类型:选择
https。 - 端口:默认
443。 - SSL 证书:从下拉列表中选择你已安装的证书,如果没有,需要先在服务器上导入证书。
- 点击 “确定”。
-
强制 HTTP 重定向到 HTTPS:
- 在 IIS 管理器中,双击你的网站下的 “URL 重写” 模块。
- 在右侧“操作”窗格中,点击 “添加规则...”。
- 选择 “空白规则”,点击“确定”。
- 名称:输入
Redirect to HTTPS。 - 匹配 URL -> 模式:输入 。
- 条件 -> 输入:选择
{HTTPS}。 - 条件 -> 模式:输入
off。 - 操作 -> 操作类型:选择 “重定向”。
- 重定向 URL:输入
https://{HTTP_HOST}/{R:1}。 - 勾选 “将查询字符串作为重定向 URL 的一部分包含” 和 “将重定向永久重定向”。
- 点击 “应用”。
3 设置目录浏览
默认情况下,访问一个没有默认文档的目录会显示“403.14 - Forbidden”,启用“目录浏览”可以列出该目录下的所有文件和文件夹。
- 在 IIS 管理器中,选中你的网站或某个虚拟目录。
- 在中间窗格中,找到 “目录浏览”,双击打开。
- 在右侧“操作”窗格中,点击 “启用”。
4 配置默认文档
当用户访问 http://mysite/ 时,IIS 会按顺序查找默认文档列表中的文件,找到第一个存在的文件就返回它。
- 在 IIS 管理器中,选中你的网站或某个虚拟目录。
- 在中间窗格中,找到 “默认文档”,双击打开。
- 在右侧“操作”窗格中,可以 “添加...” 你自己的默认文档(如
default.aspx,index.php),也可以使用 “上移” 和 “下移” 调整优先级。
5 IIS 重启与停止
- 停止/启动/重启网站:在 IIS 管理器中选中网站,右侧“操作”窗格有相应按钮。
- 停止/启动/重启整个 IIS 服务:
- 打开命令提示符(管理员)。
iisreset /stop:停止所有 IIS 服务。iisreset /start:启动所有 IIS 服务。iisreset /restart:重启所有 IIS 服务(最常用)。
第六部分:总结与最佳实践
-
安全第一:
- 始终使用 HTTPS:为所有生产环境网站配置 SSL 证书。
- 最小权限原则:为网站文件夹设置正确的 NTFS 权限,
IIS_IUSRS或IUSR账户只需要“读取”和“执行”权限,如果需要写入,再单独赋予。 - 及时更新:保持 Windows Server 和 IIS 的更新。
-
性能优化:
- 为不同网站使用不同的应用程序池:实现资源隔离,提高稳定性。
- 启用压缩:在 IIS 中启用静态和动态内容压缩,可以显著减少传输数据量,加快页面加载速度。
- 使用静态文件缓存:配置输出缓存,减少对后端应用程序的请求。
-
可维护性:
- 清晰的文件结构:将网站文件、日志、备份等放在不同的盘符和目录下,便于管理。
- 定期备份:定期备份网站文件和配置(IIS 配置可以导出为
.xml文件)。 - 使用 Web Farm Framework (WFF):如果需要部署多台服务器实现负载均衡,可以考虑使用 WFF。
希望这份详尽的教程能帮助你顺利上手和使用 IIS!如果你在某个步骤遇到问题,可以随时提问。
