互联网资讯服务

互联网信息服务（Internet Information Services），在台湾被称为网际网路资讯服务，是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT的可选包，随后成为Windows 2000、Windows XP Professional和Windows Server 2003的可选元件，但在Windows XP/Vista/7/8/10 家用版本上并没有IIS。

IIS包括FTP/FTPS、NNTP、和HTTP/HTTPS、SMTP等服务。

IIS可设定的内容包括：虚拟目录及存取权限、预设文件名称、以及是否允许浏览目录。

## 各种版本

IIS版本｜Windows版本｜备注

IIS 1.0｜Windows NT 3.51 Service Pack 3

IIS 2.0｜Windows NT 4.0

IIS 3.0｜Windows NT 4.0 Service Pack 3｜#开始支援ASP的执行环境 #有ASP源代码泄漏的Bug（Url后加。字元）

IIS 4.0｜Windows NT 4.0 Option Pack｜#支援ASP 3.0 #有ASP源代码泄漏的Bug（Url后加：$data）

IIS 5.0｜Windows 2000｜#在安装相关版本的.NetFrameWork的RunTime之后，可支援ASP.NET 1.0/1.1/2.0的执行环境

IIS 5.1｜Windows XP Professional

IIS 6.0｜Windows Server 2003Windows XP Professional x64 Edition

IIS 7.0｜Windows Vista Windows Server 2008｜# 在Home Basic中无Web Server与FTP Server # Home Premium有Web Server但是不支援FTP Server # IISRESET -reboot被移除。这代表无法透过此指令做电脑重新开机，但IISRESET的其他指令参数则功能照旧，不受影响。

IIS 7.5｜Windows 7 Windows Server 2008 R2

IIS 8.0｜Windows 8 Windows Server 2012

IIS 8.5｜Windows 8.1 Windows Server 2012 R2

IIS 10｜Windows 10 Windows Server 2016｜详见此处。

### IIS 5

IIS即为InetInfo.exe进程。aspx页面映射到该进程的aspnet ISAPI.DLL上。对aspx页面，aspnet ISAPI.DLL创建aspnet_wp.exe工作者进程（Worker Process）。IIS进程与工作者进程之间的通信，采用命名管道。

工作者进程初始化时加载CLR。一台服务器只运行一个aspnet_wp.exe工作者进程进程。每个ASP.NET应用程序在工作者进程中有自己单独的AppDomain。AppDomain有自己单独的context，实现了安全隔离。

### IIS 6

IIS 6服务器通过运行于核心态的协议侦听器组件Http.sys来接受客户的http请求。然后查看该请求的Application属于哪个应用池，把请求发到相应的应用池的队列中。如果该应用池不存在，则创建它。应用池通过工作进程隔离来分割ASP.NET应用程序，防止彼此间的干扰。

每个应用池对应一个运行在用户态下的w3wp.exe工作者进程。在IIS Metabase 中维护着 Application Pool 和worker process的Mapping。工作者进程初始化时，加载ASP.NET ISAPI DLL，该DLL加载CLR。WAS（Web Administrative service）负责调度工作者进程将执行应用池队列中哪个http请求。

### IIS 7

IIS 7服务器通过运行于核心态的组件Http.sys（HTTP 协议堆栈）来接受客户的http请求。再通过Process（Web Process Activation service，WAS）与WWW Publishing Service（W3SVC）两个用户态的系统服务来查询、调度对应的应用程序池（Application Pool）开启W3WP.exe工作者进程。

W3WP.exe工作者进程中可选择经典模式或集成模式来执行ASP.NET应用。

- 经典模式：与IIS 6处理方式一样根据网页的类型，分派给各自的 IIS ISAPI extension；ASP.NET扮演了一个ISAPI过滤插件器的角色，aspx由aspnet_isapi.dll进入CLR处理再返回给流水线。
- 集成模式：已经预加载了CLR，所有的HTTP请求（包括html, php等）都要经过Web Server Core（IIS Core）的有序的若干步骤（称为事件）。当请求完成Web Server Core的所有事件，会给HTTP.sys返回http响应。

### IIS Express

IIS Express是IIS的轻量化版本，能够被安装在Windows XP Service Pack 3与之后版本的Microsoft Windows。IIS 7.5 Express只支援HTTP或HTTPS。

IIS Express可以单独下载安装或是为Microsoft WebMatrix安装的一部分。另外，Visual Studio 在编写网页 / 网站并测试运行时也使用IIS Express提供虚拟站点服务，避免直接打开本地网页时页面上的JavaScript由于安全设置而被屏蔽。

在命令行使用IIS Express：

增加一个site：

```
"C:\Program Files\IIS Express\appcmd.exe" add site /name:MyNewSite1 /bindings:"http://localhost:58128" /physicalPath:"D:\MyPrograms\WebApplication1\WebApplication1"
```

查看site列表：

```
"C:\Program Files\IIS Express\appcmd.exe" list site
```

启动site：

```
"C:\Program Files\IIS Express\iisexpress.exe"  /siteid:3
```

或者

```
"C:\Program Files\IIS Express\iisexpress.exe"  /site:<站点名>
```

启动一个临时网站：

```
 "C:\Program Files\IIS Express\iisexpress.exe" /path:"G:\01code\04MVC\01bamin\Code\BaminSolution\BM.Admin" /port:8899 /clr:v4.0 /systray:true
```

IIS Express默认只支持本地连接，不能用IP去访问。开启/关闭外部连接：

```
netsh http add urlacl url=`http://*` :{端口号}/ user=everyone
netsh http delete urlacl url=`http://*`:{端口号}/
```

IIS Express配置文件默认位于“我的文档\IIS Express\Config\”。其中，applicationhost.config是核心配置文件，包含了site的定义、应用程序和应用程序池以及整个WEB服务器的配置。

## 兼容性

IIS是在Windows操作系统平台下开发的，这也限制了它只能在这种操作系统下运行。在Windows XP Professional中IIS的一些功能做出了限制，以与Windows Server 2003有所区隔。

## 安全性

IIS的发展伴随着安全漏洞；而随着IIS 6.0的发布，这种情况有所好转。在低于6.0的版本中，其使用者权限是系统用户；而在IIS 6.0中，引入了网络服务账户，这是一个限制用户。这样，即使服务遭到了破坏，也不会造成系统的瘫痪。

## 扩充性

FTP Publishing Service：可提供FTP或FTPS的架站服务

Administration Pack：管理者套件

Database Manager：Web版的数据库管理界面

Dynamic IP Restrictions：防止网站受到DDoS（分散式阻断服务）或是恶意产生大量并行流量的用户端攻击

Windows Media Services

URL Rewrite Module：URL复写模组，可隐藏真实的URL格式

Search Engine Optimization Toolkit：搜索引擎最佳化套件

Web Deployment Tool：网站发布工具

WebDAV

Extension

允许管理员指定自定义的WebDAV的每个URL的基础上的安全设置。

PHP For Windows：为IIS加上PHP网页的执行能力

## 外部链接

- 台湾微软IIS网站
- Web与应用服务（IIS6.0）
- 在Windows Vista Home Premium上安装IIS 7.0

## 参见

- Microsoft Personal Web Server
- Windows Server

## 基本资料

- 日语原文：Internet Information Services
- 开发者：Microsoft
- 软件版本周期：10
- 软件版本周期：2015年7月29日
- 软件版本周期：no
- 操作系统：Microsoft Windows
- 编程语言：C++
- 状态：活跃
- 语言：多语言
- 类型：网页服务器
- 许可协议：专有软件