互联网信息服务(英語:Internet Information Services),在台湾被称为网际网路资讯服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT的可选包,随后成为Windows 2000、Windows XP Professional和Windows Server 2003的可选组件,但在Windows XP/Vista/7/8/10 Home版本上并没有IIS。
IIS包括FTP/FTPS、NNTP、和HTTP/HTTPS、SMTP等服务。IIS可设置的内容包括:虚拟目录及访问权限、默认文件名称、以及是否允许浏览目录。
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服务器通过运行于核心态的协议侦听器组件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服务器通过运行于核心态的组件Http.sys(HTTP 协议堆栈)来接受客户的http请求。再通过Process(Web Process Activation service,WAS)与WWW Pulishing Service(W3SVC)两个用户态的系统服务来查询、调度对应的应用程序池(Application Pool)开启W3WP.exe工作者进程。
W3WP.exe工作者进程中可选择经典模式或集成模式来执行ASP.NET应用。
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=everyonenetsh 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中,引入了网络服务账户,这是一个限制用户。这样,即使服务遭到了破坏,也不会造成系统的瘫痪。
Extension