網際網路資訊服務

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 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中，引入了网络服务账户，这是一个限制用户。这样，即使服务遭到了破坏，也不会造成系统的瘫痪。