網際網路資訊服務

,是由微軟公司提供的基於運行Microsoft Windows網際網路基本服務。最初是Windows NT的可選包,隨後成為Windows 2000Windows XP Professional和Windows Server 2003的可選元件,但在Windows XP/Vista/7/8/10 家用版本上並沒有IIS。

Internet Information Services
開發者Microsoft
穩定版本
10
(2015年7月29日2015-07-29
编程语言C++[1]
操作系统Microsoft Windows
语言多语言
类型網頁伺服器
许可协议专有软件
网站www.iis.net

IIS包括FTP/FTPSNNTP、和HTTP/HTTPSSMTP等服務。 IIS可設定的內容包括:虛擬目錄及存取權限、預設文件名稱、以及是否允許瀏覽目錄。

各種版本

IIS版本 Windows版本 備註
IIS 1.0Windows NT 3.51 Service Pack 3
IIS 2.0Windows NT 4.0
IIS 3.0Windows NT 4.0 Service Pack 3
  1. 開始支援ASP的執行環境
  2. 有ASP原始碼洩漏的Bug(Url後加字元)
IIS 4.0Windows NT 4.0 Option Pack
  1. 支援ASP 3.0
  2. 有ASP原始碼洩漏的Bug(Url後加:$data
IIS 5.0Windows 2000
  1. 在安裝相關版本的.NetFrameWork的RunTime之後,可支援ASP.NET 1.0/1.1/2.0的執行環境
IIS 5.1Windows XP Professional
IIS 6.0Windows Server 2003
Windows XP Professional x64 Edition
IIS 7.0[2]Windows Vista
Windows Server 2008
  1. 在Home Basic中無Web Server與FTP Server
  2. Home Premium有Web Server但是不支援FTP Server
  3. IISRESET -reboot被移除。這代表無法透過此指令做電腦重新開機,但IISRESET的其他指令參數則功能照舊,不受影響。
IIS 7.5Windows 7
Windows Server 2008 R2
IIS 8.0Windows 8
Windows Server 2012
IIS 8.5Windows 8.1
Windows Server 2012 R2
IIS 10Windows 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 Pulishing 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 Sever 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只支援HTTPHTTPS[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網頁的執行能力

参考文献

  1. Lextrait, Vincent. . 2010-02-12 [2010-02-12]. (原始内容存档于2012-05-30).
  2. 模組化的IIS 7與.NET能力整合
  3. 《What’s new in IIS 10 – Microsoft Internet Information Services 10 New Features》,by benjaminperkins, March 6, 2017
  4. . The Official Microsoft IIS Site. Microsoft corporation. January 14, 2011 [January 27, 2011].
  5. . Microsoft Download Center. Microsoft corporation. January 10, 2011 [January 27, 2011].
  6. . The Official Microsoft IIS Site. Microsoft corporation. January 14, 2011 [January 27, 2011].
  7. FTP Publishing Service
  8. Administration Pack
  9. Database Manager
  10. Dynamic IP Restrictions
  11. cWindows Media Services
  12. URL Rewrite Module
  13. Search Engine Optimization Toolkit
  14. Web Deployment Tool
  15. WebDAV Extension
  16. PHP For Windows: Binaries and sources Releases

外部連結

參見

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.