網際網路資訊服務

網際網路資訊服務（Internet Information Services，簡稱IIS），在中國大陸被稱為Internet資訊服務，是由微軟公司提供的基於運行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++
- 狀態：活躍
- 語言：多語言
- 類型：網頁伺服器
- 許可協議：專有軟體