标题：IIS 7.0
含义
IIS(Internet Information Services)7 指 Windows Server 2008、Windows Server 2008 R2、Windows Vista 和 Windows 7 的某些版本中包含的 IIS 版本。IIS 7.0 在 Windows Server 2008 中是 Web 服务器 (IIS) 角色，而在 Windows Vista 中是 Web 服务器。IIS 7.5 在 Windows Server 2008 R2 中是 Web 服务器 (IIS) 角色，而在 Windows 7 中是 Web 服务器。Web 服务器在 IIS 7 中经过重新设计，您将能够通过添加或删除模块来自定义服务器，以满足您的特定需求。模块是服务器用于处理请求的独特功能。例如，IIS 使用身份验证模块对客户端凭据进行身份验证，并使用缓存模块来管理缓存活动。IIS是一个支持HTTP和FTP发布服务的Web服务器。IIS 7.0 通过支持灵活的可扩展模型来实现强大的定制功能，通过安装和运行特征加强安全。IIS 7.0现在还可以让那些在其中负责web应用程序或服务的人来代理权限，通过选择性地安装和运行特性增强安全性。IIS 7.0的可扩展性包括一个全新的核心服务器API集合，这使得特性模块可以用本机码（C/C++）或托管代码开发。IIS 7.0还启用了配置、脚本、事件日志和管理工具特性集的可扩展性，向软件开发者提供了一个完备的服务器平台，开发者可以在该平台上建立Web服务器扩展模块。IIS 7.0 包括了一整套的管理工具，包括新的管理员和命令行工具，新的托管代码和脚本API和Windows PowerShell支持简化开发人员和管理员的日常工作。管理工具是完全可扩展的，使得开发者能够使用.NET框架建立新的管理模块，也很容易将新的管理UI模块插入进来，如同随IIS 7.0发布的那些模块一般，新模块的工作过程是透明的。IIS 7.0核心Web服务器与IIS 6.0比较，有一些根本性的变化。例如，本机代码和托管代码可以通过单一的请求流程进行处理。集成化的流程，使得不同的应用框架可以在单一的Web服务器请求流水线中运行，为所有应用程序提供了内建的ASP. NET可扩展性。IIS 7.0还支持使用.NET框架开发核心Web服务器扩展。IIS 7.0集成了现存的用于ASP. NET的IHttpModule API，使得对于所有请求，你的托管代码模块都能够访问请求流程中的所有事件。IIS 7.0包括一个新的Runtime State and Control API，提供了关于应用程序池、工作进程、网站、应用程序域、和运行中的请求的实时状态信息。该信息通过本机COM组件API暴露出来。该API是通过新的IIS WMI提供者appcmd.exe和IIS Manager包装和暴露出来的。
Windows Server 2008提供了在生产环境中支持Web内容承载所需的全部 IIS 功能。Windows Vista 也提供了 IIS 功能，但可用功能取决于 Windows Vista的版本。Windows Vista中的 IIS对于想要构建和测试 Web 应用程序的用户而言十分理想。  IIS 7.0IIS 7.0 包括Microsoft.Web.Administration接口编程用来管理服务器。IIS 7.0 还包括一个新的Windows Management Instrumentation（WMI）提供者用来提供访问配置和服务器的状态信息给VBScript和JScript。通过使用WMI，管理员可以轻松地自动化基本的配置任务以及管理网站和应用程序。
图形界面的新IIS管理器在防火墙里不开放任何端口的情况下就可以通过HTTP的远程管理，该管理工具是完全可扩展的。
图形界面的新IIS管理器支持HTTP远程管理协议，在无需DCOM的情况下允许无缝地进行本地，远程，甚至跨互联网的连接或在防火墙里开放其它管理端口。
Vista开启IIS 7.0
在Vista中，我们可以看得到新版本的IIS 7.0看上去比6.0有了很大的改进。你现在可以自由开启IIS 7.0，并在个人电脑上架设自己的网站。
下面是开启方法:
1、热键WinKey+R—输入"cmd.exe" (不带引号)。
2、输入下列命令:
start /w pkgmgr.exe /iu:IIS-WebServerRole;IIS-WebServerFeature;IIS-FTPServerFeature
然后，就会自动安装IIS 7.0。而且，IIS 7.0已经完全组件化，类似于Apache。
Win7开启IIS 7.0
默认情况下，windows7安装时是不会自动安装iis，只能手动安装，需要有安装盘。
安装方法：
开始-控制面板-程序-打开或关闭windows功能-internet信息服务-Web管理工具
winXP 安装 IIS 过程
1、控制面板中“程序”的位置，“程序”中“打开或关闭Windows功能”的位置。
2、IIS安装完成之后可以在开始菜单的所有程序中看到“管理工具”，其中有一个“Internet信息服务管理器”，如果没有可以按以下步骤添加：开始》右击属性》“开始”菜单选项卡》自定义》把“系统管理工具”设置为“在所有程序菜单显示”或者“在所有程序菜单和开始菜单上显示”。
3、打开Internet信息服务管理器就可以看到IIS的主页了。ok，完成。
IIS 7.0 HTTP 状态代码
当您试图通过使用 HTTP 访问一台正在运行 Internet 信息服务 (IIS) 7.0 的服务器上的内容时，IIS 7.0 返回一个表示该响应的状态的数字代码。HTTP 状态代码记录在 IIS 日志中。此外，HTTP 状态代码可能会显示在客户端浏览器中。
HTTP 状态代码可能表示请求是否成功或不成功。HTTP 状态代码也可能显示请求成功的确切原因。
1xx - 信息这些 HTTP 状态代码表示临时的响应。客户端在收到常规响应之前，应准备接收一个或多个 1xx 响应。
IIS 7.0 使用以下信息 HTTP 状态代码：
100 - 继续。
101 - 切换协议。
2xx - 成功200 - 确定。客户端请求已成功。
201 - 已创建。 202 - 已接受。
203 - 非授权信息。
204 - 无内容。
205 - 重置内容。
206 - 部分内容。
3xx - 重定向301 - 已被永远移走。 
302 - 对象已移动。
304 - 未修改。
307 - 临时重定向。
4xx - 客户端错误IIS 7.0 定义以下 HTTP 状态代码，表明 400 错误的具体原因： 
400.1 - 无效的目的标头。
400.2 - 无效的深度标头。
400.3 - 无效的如果标头。
400.4 - 无效的覆盖标头。
400.5 - 无效的转换标头。
400.6 - 无效的请求正文。
400.7 - 无效的内容长度。
400.8 - 无效的超时值。
400.9 - 无效的锁定令牌。
401 - 访问被拒绝。
IIS 7.0 定义几个 HTTP 状态代码，表明 401 错误的具体原因：以下特定的 HTTP 状态代码显示在客户端浏览器中，但是不会显示在 IIS 日志中：
401.1 - 登录失败。
401.2 - 服务器配置导致登录失败。
401.3 - 由于 ACL 对资源的限制而未获得授权。
401.4 - 筛选器授权失败。
401.5 - ISAPI/CGI 应用程序授权失败。
403 - 禁止访问：
IIS 7.0 定义以下 HTTP 状态代码，表明 403 错误的具体原因：
403.1 - 执行访问被禁止。
403.2 - 读访问被禁止。
403.3 - 写访问被禁止。
403.4 - 要求SSL。
403.5 - 要求 SSL 128。
403.6 - IP 地址被拒绝。
403.7 - 要求客户端证书。
403.8 - 站点访问被拒绝。
403.9 - 禁止：许多客户端尝试连接到 Web 服务器：
403.10 - 禁止访问：配置 Web 服务器为拒绝执行访问。
403.11 - 禁止访问：密码已更改。
403.12 - 拒绝访问映射表。
403.13 - 客户端证书被吊销。
403.14 - 拒绝目录列表。
403.15 - 禁止访问： Client access licenses have exceeded limits on the Web server.
403.16 - 客户端证书不受信任或无效。
403.17 - 客户端证书已过期或尚未生效。
403.18 - 在当前的应用程序池中不能执行所请求的 URL。
403.19 - 在此应用程序池中不能执行客户端的 CGI 应用程序。
403.20 - 禁止访问：护照登录失败。 
403.21 - 禁止访问：拒绝源访问。 
403.22 - 禁止访问：拒绝无限深度。
404 - 未找到。
IIS 7.0 定义以下HTTP 状态代码，表明 404 错误的具体原因：
404.0 - 未找到。
404.1 - 站点未找到。
404.2 - ISAPI 或 CGI 限制。
404.3 - MIME 类型限制。
404.4 - 未配置处理程序。
404.5 - 被请求筛选器配置拒绝。
404.6 - 动词被拒绝。
404.7 - 文件扩展名被拒绝。
404.8 - 隐藏的命名空间。
404.9 - 文件属性被隐藏。
404.10 - 请求标头太长。
404.11 - 请求包含双转义序列。
404.12 - 请求包含高位字符。
404.13 - 内容长度太大。
404.14 - 请求 URL 太长。
404.15 - 查询字符串太长。
404.16 - 发送到静态文件处理程序的 DAV 请求。
404.17 - 动态内容通过通配符 MIME 映射映射到静态文件处理程序。
405 - 无效的动词。
406 - 客户端浏览器不接受所请求页面的 MIME 类型。
408 - 请求超时。
412 - 前提条件失败。
5xx - 服务器错误IIS 7.0 定义以下 HTTP 状态代码，表明 500 错误的具体原因：
500.0 - 发生模块或 ISAPI 错误。
500.11 - 正在 Web 服务器上关闭应用程序。
500.12 - 应用程序正忙于在 Web 服务器上重新启动。
500.13 - Web 服务器太忙。
500.15 - 不允许直接请求 Global.asax。
500.19 - 配置数据无效。
500.21 - 模块无法识别。
500.22 - 无法在托管管道模式下应用 ASP.NET httpModules 配置。
500.23 - 无法在托管管道模式下应用 ASP.NET httpHandlers 配置。
500.24 - 无法在托管管道模式下应用 ASP.NET impersonation 配置。
500.50 - RQ_BEGIN_REQUEST 通知处理期间，发生重写错误。发生配置或入站规则执行错误。
IIS 7.0的集成模式和经典模式
IIS7.0中的Web应用程序有两种配置模式：经典模式和集成模式。经典模式是为了与之前的版本兼容，使用ISAPI扩展来调用ASP.NET运行库，原先运行于IIS6.0下的Web应用程序迁移到IIS7.0中只要将应用程序配置成经典模式，代码基本不用修改就可以正常运行。集成模式是一种统一的请求处理管道，它将ASP.NET请求管道与IIS核心管道组合在一起，这种模式能够提供更好的性能，能够实现配置和管理的模块化，而且增加了使用托管代码模块扩展IIS时的灵活性。如果老的Web应用程序运行于IIS7.0的集成模式下，可能需要对应用程序的web.config文件进行修改，尤其是使用了实现IHttpHandler接口的自定义模块的情况。IIS7.0在同一个服务器上能够同时支持两种模式的应用程序。
IIS6.0中ASP.NET MMC管理单元用于配置ASP.NET，7.0中ASP.NET应用程序的管理域IIS管理更加紧密的集成在一起，不存在单独的管理单元，所有的IIS和ASP.NET配置都是使用IIS管理器完成的。IIS7.0配置信息基于.NET Framework配置系统，所以IIS7.0中运行的应用程序的web.config文件同时包含web服务器和ASP.NET配置设置，例如可以再web.config文件中设置扩展名和文件的映射（IIS6.0中必须在IIS中进行配置）。
web.config文件的变化system.webServer节指定了应用于web应用程序的IIS7.0设置，其父节点是configuration，该节点中可以设置的内容包括：
当请求未包含指定资源时，Web服务器返回给客户端的默认文档(defaultDocument)； 
响应的压缩设置(httpCompression) 
自定义头部(httpProtocol节的customHeaders) 
模块（modules） 
处理程序（handlers） 
其中的一些设置仅适用于集成模式，而不适用于经典模式，如经典模式下运行的应用程序则忽略web.config的system.WebServer节中指定的所有托管代码模块和处理程序，这种模式下web应用程序应该在syste.web节的httpModules和httpHandlers中定义模块和处理程序。
将 Web 应用程序迁移到集成模式不包含自定义模块或处理程序的 Web 应用程序通常无需更改即可在 IIS 7.0 集成模式下正常工作。对于依赖于自定义模块或处理程序的 Web 应用程序，需要执行以下步骤来使其能够在集成模式下运行：
使用本主题稍后的将 Web Config文件迁移到集成模式部分中描述的方法之一，在 Web.config 文件的 system.webServer 节中注册自定义模块和处理程序。
仅在自定义模块的 Init 方法中定义 HttpApplication 请求管道事件（如 BeginRequest 和 EndRequest）的事件处理程序。
请确保您已解决 Upgrading ASP.NET Applications to IIS 7.0: Differences between IIS 7.0 Integrated Mode and Classic mode（将 ASP.NET 应用程序升级到 IIS 7.0：IIS 7.0 集成模式和经典模式之间的区别）的“Known Differences Between Integrated Mode and Classic Mode”（集成模式和经典模式之间的已知区别）部分中讨论的问题。
实现 IHttpModule 接口的模块被称为托管代码模块，因为它们是使用 .NET Framework 生成的。可以在服务器级别或应用程序级别注册托管代码模块。本机代码模块是仅在服务器级别注册的 DLL（非托管代码）。在集成模式下，将以托管模块的形式实现核心 ASP.NET 功能，例如会话状态和 Forms 身份验证。
在将应用程序从经典模式迁移到集成模式时，可以保留经典模式下的自定义模块和处理程序注册，也可以将这些注册移除。如果不移除经典模式下使用的 httpModules 和 httpHandlers 注册，则必须将 validation 元素的 validateIntegratedModeConfiguration 属性设置为 false 以避免错误。validation 元素是 system.webServer 元素的子元素。有关更多信息，请参见 ASP.NET Integration with IIS 7.0（将 ASP.NET 与 IIS 7.0 集成）中的“Disabling the migration message”（禁用迁移消息）部分。
迁移 Web.config 文件以便在集成模式下使用
如果模块或处理程序是在应用程序级别定义的，则不会自动调用该模块或处理程序。这涉及符合以下条件的模块或处理程序：在 Bin 文件夹下的程序集中定义；在 App_Code文件夹下作为源代码定义；没有在 Web.config 文件的 system.webServer 节中注册和定义。为了使模块或处理程序能够参与集成模式请求管道，必须使用下列方法之一注册该模块或处理程序：
直接编辑 Web.config 文件，并且将 modules 或 handlers 元素添加到 system.webServer 元素中。请注意，与经典模式相比，元素名称是不同的：modules 和 handlers 分别对应于经典模式下的 httpModules 和 httpHandlers。
使用 IIS 管理器配置模块或处理程序。有关更多信息，请参见 Configuring Handler Mappings in IIS 7.0（在 IIS 7.0 中配置处理程序映射）和 Configuring Modules in IIS 7.0（在 IIS 7.0 中配置模块）。
使用 IIS 7.0 命令行工具 (Appcmd.exe)。有关更多信息，请参见 Configure Settings for a Site, Application, Virtual Directory or URL by Using Appcmd.exe（使用 Appcmd.exe 配置站点、应用程序、虚拟目录或 URL 的设置）。
使用集成模式的类和属性在 IIS 7.0 集成模式以及 .NET Framework 3.0 版或更高版本中使用应用程序时，可以使用下面这些在经典模式下不可用的类和成员：
HttpResponse 对象的 SubStatusCode 属性，使用它可以设置在配置了失败请求跟踪的情况下有用的代码。有关更多信息，请参见 Troubleshooting Failed Requests Using Failed Request Tracing in IIS 7.0（使用 IIS 7.0 中的跟踪功能解决请求失败的问题）。
HttpResponse 对象的 Headers 属性，使用它可以访问响应头。
HttpContext 对象的 IsPostNotification 和 CurrentNotification 属性，在提供 HttpApplication 事件的处理程序时可以使用它们。
HttpRequest 对象的 Headers 和 ServerVariables 属性，它们支持写功能。
集成模式与经典模式下请求处理管道的不同集成模式下ASP.NET的处理管道与经典模式是不同的。集成模式下不论是传统的ASP.NET Web Forms应用程序还是ASP.NET MVC应用程序都可以使用Routing系统（路由系统）。
Routing系统原来是为ASP.NET MVC设计的，后来也被应用于其他ASP.NET技术，包括ASP.NET Web Forms。这就是.NET Framework 3.5中Routing代码不在System.Web.Mvc.dll而在System.Web.Routing.dll中的原因。在.NET Framework 4.0中，Routing代码是在System.Web.dll中的。
IIS 7.0 集成PHP环境
想必不少从事网站方面工作的朋友都想在在WIN7上安装PHP和MYSQL吧，之前是有PHP FOR IIS的，但是在百度和google上搜索都没有PHP FOR IIS7 ，想要一键自动在WIN7上安装PHP和MYSQL看似有点痴人说梦了。最近找到了一个韩国网站上有PHP FOR IIS7，下载下来测试之后发现确实可以一键自动在WIN7上安装PHP和MYSQL。
自己配置PHP环境比较麻烦，而且容易出错，对于怕麻烦的朋友来说选择PHP FOR IIS7一键自动在WIN7上安装PHP和MYSQL是一个不错的选择。下面的扩展阅读里给出了PHP FOR IIS7的程序包下载地址。