網際網路資訊服務

维基百科,自由的百科全书
(重定向自Internet Information Server
跳转到导航 跳转到搜索
Internet Information Services
File:IIS.PNG
開發者Microsoft
当前版本10(2015年7月29日,​10年前​(2015-07-29
源代码库
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
编程语言C++[1]
引擎
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    操作系统Microsoft Windows
    语言多语言
    类型網頁伺服器
    许可协议专有软件
    网站www.iis.net

    互联网信息服务(英語:Internet Information Services),在台湾被称为网际网路资讯服务,是由微軟公司提供的基於運行Microsoft Windows網際網路基本服務。最初是Windows NT的可選包,隨後成為Windows 2000Windows XP Professional和Windows Server 2003的可選元件,但在Windows XP/Vista/7/8/10 家用版本上並沒有IIS。

    IIS包括FTP/FTPSNNTP、和HTTP/HTTPSSMTP等服務。 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
    1. 開始支援ASP的執行環境
    2. 有ASP原始碼洩漏的Bug(Url後加字元)
    IIS 4.0 Windows NT 4.0 Option Pack
    1. 支援ASP 3.0
    2. 有ASP原始碼洩漏的Bug(Url後加:$data
    IIS 5.0 Windows 2000
    1. 在安裝相關版本的.NetFrameWork的RunTime之後,可支援ASP.NET 1.0/1.1/2.0的執行環境
    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
    1. 在Home Basic中無Web Server與FTP Server
    2. Home Premium有Web Server但是不支援FTP Server
    3. 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
    详见此处。[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只支援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. The Programming Languages Beacon, v10.0. 2010-02-12 [2010-02-12]. (原始内容存档于2012-05-30). 
    2. ^ 模組化的IIS 7與.NET能力整合. [2008-11-17]. (原始内容存档于2019-07-11). 
    3. ^ 《What’s new in IIS 10 – Microsoft Internet Information Services 10 New Features》,by benjaminperkins, March 6, 2017. [2019-05-18]. (原始内容存档于2019-06-09). 
    4. ^ IIS Express FAQ. The Official Microsoft IIS Site. Microsoft corporation. January 14, 2011 [January 27, 2011]. (原始内容存档于2012-08-30). 
    5. ^ Download details: Internet Information Services (IIS) 7.5 Express. Microsoft Download Center. Microsoft corporation. January 10, 2011 [January 27, 2011]. (原始内容存档于2011-06-24). 
    6. ^ IIS Express Overview. The Official Microsoft IIS Site. Microsoft corporation. January 14, 2011 [January 27, 2011]. (原始内容存档于2012-08-30). 
    7. ^ FTP Publishing Service. [2013-03-27]. (原始内容存档于2021-02-26). 
    8. ^ Administration Pack. [2013-03-27]. (原始内容存档于2020-11-12). 
    9. ^ Database Manager. [2013-03-27]. (原始内容存档于2021-01-27). 
    10. ^ Dynamic IP Restrictions. [2013-03-27]. (原始内容存档于2021-04-11). 
    11. ^ cWindows Media Services. [2013-03-27]. (原始内容存档于2020-11-13). 
    12. ^ URL Rewrite Module. [2013-03-27]. (原始内容存档于2021-04-21). 
    13. ^ Search Engine Optimization Toolkit. [2013-03-27]. (原始内容存档于2021-03-01). 
    14. ^ Web Deployment Tool. [2013-03-27]. (原始内容存档于2021-03-27). 
    15. ^ WebDAV Extension. [2013-03-27]. (原始内容存档于2020-09-06). 
    16. ^ PHP For Windows: Binaries and sources Releases. [2013-03-27]. (原始内容存档于2021-04-30). 

    外部連結[编辑]

    參見[编辑]

    Module:Authority_control第183行Lua错误:attempt to index field 'wikibase' (a nil value)