網際網路資訊服務
網際網路資訊服務(英語:Internet Information Services,簡稱IIS),在中國大陸被稱為Internet信息服務,是由微軟公司提供的基於運行Microsoft Windows的網際網路基本服務。最初是Windows NT的可選包,隨後成為Windows 2000、Windows XP Professional和Windows Server 2003的可選元件,但在Windows XP/Vista/7/8/10 家用版本上並沒有IIS。
開發者 | Microsoft |
---|---|
目前版本 | 10(2015年7月29日 | )
程式語言 | C++[1] |
作業系統 | Microsoft Windows |
語言 | 多語言 |
類型 | 網頁伺服器 |
許可協定 | 專有軟體 |
網站 | www |
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 |
|
IIS 4.0 | Windows NT 4.0 Option Pack |
|
IIS 5.0 | Windows 2000 |
|
IIS 5.1 | Windows XP Professional | |
IIS 6.0 | Windows Server 2003 Windows XP Professional x64 Edition |
|
IIS 7.0[2] | Windows Vista Windows Server 2008 |
|
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 |
詳見此處。[3] |
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[4]。 IIS Express可以單獨下載安裝[5]或是為Microsoft WebMatrix安裝的一部分[6]。另外,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[7]
- 可提供FTP或FTPS的架站服務
- Administration Pack[8]
- 管理者套件
- Database Manager[9]
- Web版的資料庫管理介面
- Dynamic IP Restrictions[10]
- 防止網站受到DDoS(分散式阻斷服務)或是惡意產生大量並行流量的使用者端攻擊
- Windows Media Services[11]
- URL Rewrite Module[12]
- URL複寫模組,可隱藏真實的URL格式
- Search Engine Optimization Toolkit[13]
- 搜尋引擎最佳化套件
- Web Deployment Tool[14]
- 網站發佈工具
- WebDAV
Extension[15]
- 允許管理員指定自訂的WebDAV的每個URL的基礎上的安全設定。
- PHP For Windows[16]
- 為IIS加上PHP網頁的執行能力
參考文獻
編輯- ^ Lextrait, Vincent. The Programming Languages Beacon, v10.0. 2010-02-12 [2010-02-12]. (原始內容存檔於2012-05-30).
- ^ 模組化的IIS 7與.NET能力整合. [2008-11-17]. (原始內容存檔於2019-07-11).
- ^ 《What’s new in IIS 10 – Microsoft Internet Information Services 10 New Features》,by benjaminperkins, March 6, 2017. [2019-05-18]. (原始內容存檔於2019-06-09).
- ^ IIS Express FAQ. The Official Microsoft IIS Site. Microsoft corporation. January 14, 2011 [January 27, 2011]. (原始內容存檔於2012-08-30).
- ^ Download details: Internet Information Services (IIS) 7.5 Express. Microsoft Download Center. Microsoft corporation. January 10, 2011 [January 27, 2011]. (原始內容存檔於2011-06-24).
- ^ IIS Express Overview. The Official Microsoft IIS Site. Microsoft corporation. January 14, 2011 [January 27, 2011]. (原始內容存檔於2012-08-30).
- ^ FTP Publishing Service. [2013-03-27]. (原始內容存檔於2021-02-26).
- ^ Administration Pack. [2013-03-27]. (原始內容存檔於2020-11-12).
- ^ Database Manager. [2013-03-27]. (原始內容存檔於2021-01-27).
- ^ Dynamic IP Restrictions. [2013-03-27]. (原始內容存檔於2021-04-11).
- ^ cWindows Media Services. [2013-03-27]. (原始內容存檔於2020-11-13).
- ^ URL Rewrite Module. [2013-03-27]. (原始內容存檔於2021-04-21).
- ^ Search Engine Optimization Toolkit. [2013-03-27]. (原始內容存檔於2021-03-01).
- ^ Web Deployment Tool. [2013-03-27]. (原始內容存檔於2021-03-27).
- ^ WebDAV Extension. [2013-03-27]. (原始內容存檔於2020-09-06).
- ^ PHP For Windows: Binaries and sources Releases. [2013-03-27]. (原始內容存檔於2021-04-30).