IIS 模块概述
作者:IIS 团队 Mike Volodarsky
兼容性
版本 | 说明 |
---|---|
IIS 7.0 及更高版本 | 本文中所述的功能是在 IIS 7.0 中引入的。 |
IIS 6.0 及更低版本 | 在 IIS 7.0 之前的版本中,本文所述功能不受支持。 |
介绍
IIS 7 及更高版本的 Web 服务器功能集已组件化为三十多个独立模块。
模块可以是 Win32 DLL(本机模块),也可以是包含在程序集中的 .NET 2.0 类型(托管模块)。 与一组构建基块类似,模块会添加到服务器,以便为应用程序提供所需的功能。 同样,可以移除所有 IIS 模块,或者替换为使用 IIS C++ API 开发的自定义模块,或替换为熟悉的 ASP.NET 2.0 API。
本文介绍常见的 IIS 模块管理任务,并详细介绍了每个模块,包括其配置设置以及移除模块后对 Web 服务器的潜在影响。 使用图形化的 IIS 管理器和 AppCmd 命令行工具提供了管理示例。
先决条件
要执行本文档中的步骤,最好是安装 IIS。
注意
并非所有版本的 Windows 都支持所有可用的 IIS 功能。 要查看操作系统上支持 IIS 功能,需要查阅你的 Windows 版本随附的文档。
在 Windows Vista、Windows 7、Windows 8、Windows 10 或 Windows 11 上执行 IIS 的完整安装
- 单击“开始”,然后单击“控制面板” 。
- 在“控制面板”中,单击“程序”。
- 在“程序和功能”下,单击“打开或关闭 Windows 功能” 。
- 在“Windows 功能”对话框中,展开“Internet Information Services”并选择所有功能。
可能需要展开某些类别以选择该类别中的所有功能。 - 单击“确定”。
在 Windows Server 2008/R2、Windows Server 2012/R2 或 Windows Server 2016 上执行 IIS 的完整安装
- 打开“服务器管理器”>“角色”,然后选择“Web 服务器(IIS)”。
- 选中“Web 服务器”下的所有功能。
模块入门
要将模块添加到服务器,必须执行两个步骤:
- 在服务器上安装模块(仅限本机模块)。
- 在应用程序中启用模块。
第一步将模块全局注册到服务器,使其在每个服务器工作进程中可用。 由于本机代码的受信任性质,只有本机模块才需要执行此步骤,并且只有管理员才能执行。
注意
本机模块可以不受限制地访问服务器工作进程可用的任何资源,就像以前版本中的 ISAPI 筛选器或扩展一样。 由于这种不受限制的访问,应仅安装来自受信任源的本机模块。
第二步使模块能够在特定应用程序中执行,并且实际上是允许应用程序管理员控制为应用程序启用的服务器功能。 此步骤允许为每个应用程序启用已安装的本机模块和托管模块。
安装本机模块
要安装本机模块,必须使用以下选项之一向服务器注册本机模块:
- 手动编辑 IIS 配置存储。 在 IIS 7.5 及更高版本中,可以在 IIS 管理器中使用配置编辑器。
- 使用 IIS 管理器
- 使用 AppCmd.exe 命令行工具
这三个选项都会导致模块条目添加到 IIS 的 <globalModules> 配置节(只能在服务器级别设置)。 若要检查此节的内容,请打开位于的 %windir%\system32\inetsrv\config\applicationhost.config
根配置文件,并搜索字符串“<globalModules>”。
安装完整的 IIS 后,此节会包含 IIS 随附的每个本机模块的条目,并指定模块 DLL 的名称和路径:
<globalModules>
<add name="DefaultDocumentModule" image="%windir%\system32\inetsrv\defdoc.dll" />
<add name="DirectoryListingModule" image="%windir%\system32\inetsrv\dirlist.dll" />
<add name="StaticFileModule" image="%windir%\system32\inetsrv\static.dll" />
...
</globalModules>
本文档稍后将详细介绍所有这些模块。
卸载本机模块
如果该模块不再在服务器上使用,或者想要将其替换为另一个模块,则可以卸载本机模块。 使用下列选项之一从 <globalModules> 配置列表中移除相应的模块条目,并在 <modules>
配置列表中移除关联条目:
- 手动编辑 IIS 配置存储。 在 IIS 7.5 及更高版本中,可以使用配置编辑器。
- 使用 IIS 管理器
- 使用 AppCmd.exe 命令行工具
注意
由于 <globalModules> 配置节只能在服务器级别设置,因此你必须是管理员才能卸载模块。
为应用程序启用模块
必须先启用模块,然后才能为特定应用程序提供服务。 若要启用本机模块,必须先在服务器上安装它(请参阅上一章节安装本机模块)。
托管模块不需要安装,可以直接为每个应用程序启用托管模块。 这样,应用程序就可以在应用程序的 web.config 文件中注册托管模块,并在 /BIN 或 /App_Code 目录中提供实现,从而直接将托管模块包含在应用程序中。
要启用模块,请执行以下操作之一:
- 手动编辑 IIS 配置存储,为服务器上的所有应用程序全局启用模块,或是在要为其启用此模块的每个应用程序中的特定 web.config 文件中启用模块。 在 IIS 7.5 或更高版本中,可以使用配置编辑器。
- 使用 IIS 管理器
- 使用 AppCmd.exe 命令行工具
这三个选项都会将模块条目添加到 IIS 配置节 <modules>
,可以在服务器级别和应用程序级别设置。 打开位于 %windir%\system32\inetsrv\config\applicationhost.config
中的根配置文件并搜索字符串“<modules>”,以此来检查此节的内容。
与本机模块不同,托管模块不需要向 <globalModules> 配置节添加条目。
完成 IIS 的完整安装后,配置节包含 IIS 附带的每个模块(托管模块和本机模块)的条目。 该条目指示默认情况下为服务器上的所有应用程序启用所有这些模块。 此部分中的每个条目指定服务器上之前安装的本机模块的名称,或者指定托管模块的名称和 .NET 类型:
<modules>
<add name="DefaultDocumentModule" />
<add name="DirectoryListingModule" />
<add name="StaticFileModule"/>
...
</modules>
在应用程序中禁用模块
如果应用程序中不再使用某个模块,或者想要将其替换为另一个模块,可禁用此模块。 要禁用模块,请从不希望执行此模块的特定应用程序的 <modules>
配置集合中移除相应的模块条目。 如果模块在服务器级别启用,请在服务器中移除模块,从而在服务器上的所有应用程序中默认将其禁用。 使用以下选项之一在服务器级别移除模块:
- 在应用程序中手动编辑 <system.webServer>/<modules> 配置节。
- 使用 IIS 管理器。
- 使用 AppCmd.exe 命令行工具。
从应用程序中移除模块后,该模块将不会在该应用程序中处于活动状态。 但如果模块是本机模块,则模块仍将加载到服务器工作进程中,并且可由未移除此模块的其他应用程序使用。
注意
如果安装了 ASP.NET,则默认会解锁配置节。 默认解锁允许应用程序全局禁用启用本机模块和托管模块,并允许添加新托管模块。 可以在服务器级别锁定此配置节,以完全防止修改,或防止移除特定模块条目(如果管理员需要)。
Preconditions
模块条目上还有另一个名为 PRECONDITION 的属性。 IIS 核心引擎使用前置条件来确定何时启用特定模块。 例如,出于性能考虑,你可能决定只想为同时转到托管处理程序的请求执行托管模块。 以下示例中的前置条件 (precondition="managedHandler") 仅对也由托管处理程序处理的请求(如对 .aspx 或 .asmx 文件的请求)启用“表单身份验证”模块:
<add name="FormsAuthentication"type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
如果移除 precondition="managedHandler" 属性,则表单身份验证还将应用于不是由托管处理程序提供服务的内容,如 .html、.jpg 或 .doc,但也应用于传统的 ASP (.asp) 或 PHP (.php) 扩展。 有关启用 ASP.NET 模块为所有内容运行的示例,请参阅“如何利用 IIS 集成管道”。
还可以使用快捷方式使所有托管 (ASP.NET) 模块都能针对所有应用程序中的所有请求运行,无论 managedHandler 前提条件如何。 如果要使所有托管模块都能针对所有请求运行,而无需配置每个模块条目以删除 managedHandler 前提条件,请使用 部分中的 runAllManagedModulesForAllRequests<modules>
属性:
<modules runAllManagedModulesForAllRequests="true"/>
使用此属性时,managedHandler 前提条件不起作用,所有托管模块都将针对所有请求运行。
使用 IIS 管理器查询、添加和移除模块
使用 IIS 管理器可以轻松查询、添加或移除模块。
- 若要打开 IIS 管理器,请单击“开始”,在“搜索”框中键入 inetmgr,然后按 Enter。
- 单击 IIS 服务器的计算机名称。
- 单击 IIS 类别中的“模块”图标。
图 1:IIS 管理器
管理特定应用程序的已启用模块
- 使用左侧的树视图连接到该应用程序。
- 转到“模块”功能窗格。
- 单击“添加托管模块”,将托管模块添加到应用程序。 “添加本机模块”仅允许添加已在服务器级别注册的模块。
从应用程序中移除模块
- 单击列表中的模块。 左窗格中将显示“移除”任务。
- 单击“移除”。
图 2:IIS 管理器中的模块列表
从命令行管理模块
若要从命令行或脚本模块管理任务快速管理模块,请使用 AppCmd.exe 命令行工具。
使用 AppCmd.exe 安装模块
在命令提示符处,键入以下命令(将斜体值替换为计算机上的模块的值)。
Appcmd.exe install module /name:MODULE_NAME /image:PATH_TO_DLL
注意
安装本机模块后,会自动在服务器级别启用本机模块。
例如,以下命令会安装“默认文档”模块。
%windir%\system32\inetsrv\appcmd.exe install module /name:DefaultDocumentModule /image:%windir%\system32\inetsrv\defdoc.dll
如果在已加载模块的计算机上运行该命令,则会收到如下所示的错误消息:
ERROR (message:无法添加重复集合元素 "DefaultDocumentModule"。)
使用 AppCmd.exe 卸载模块
在命令提示符处,键入以下命令(将斜体值替换为计算机上的模块的值)。
Appcmd.exe uninstall module MODULE_NAME
注意
卸载模块会在服务器级别自动禁用模块。
例如,以下命令会卸载“默认文档”模块。 此命令仅作为示例提供。 仅应在测试服务器上运行。
%windir%\system32\inetsrv\appcmd.exe uninstall module DefaultDocumentModule
列出为应用程序启用或全局启用的模块
在命令提示符处,键入以下命令(将斜体文本替换为计算机上的模块的值)。
Appcmd.exe list modules [/app.name:APPLICATION_NAME]
例如,以下命令会列出为默认网站启用的模块。
%windir%\system32\inetsrv\appcmd.exe list modules /app.name:"Default Web Site"
此命令将列出全局安装的模块。
%windir%\system32\inetsrv\appcmd.exe list modules
为特定应用程序或在全局启用模块
在命令提示符处,键入以下命令(将斜体文本替换为计算机上的模块的值)。
Appcmd.exe add module /name:MODULE_NAME /type:MGD_TYPE
例如,以下命令会将“表单身份验证”模块添加到默认网站。
%windir%\system32\inetsrv\appcmd.exe add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule /app.name:"Default Web Site"
此命令会全局添加“表单身份验证”模块。
%windir%\system32\inetsrv\appcmd.exe add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule
为特定应用程序或在全局禁用模块
在命令提示符处,键入以下命令(将斜体文本替换为计算机上的模块的值)。
Appcmd.exe delete module MODULE_NAME [/app.name:APPLICATION_NAME]
例如,以下命令会将“表单身份验证”模块从默认网站中移除。
%windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication /app.name:"Default Web Site"
此命令会全局移除“表单身份验证”模块。
%windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication
获取有关每个 App Cmd.exe 命令语法的更多帮助
要显示模块对象支持的命令,请键入以下命令:
Appcmd.exe module /?
要显示每个命令的用法,请键入以下命令:
Appcmd.exe install module /?Appcmd add module /?
模块参考
IIS 服务器已经可供定制。 请仔细阅读以下列表,以避免副作用、功能丢失或移除安全功能。
实用工具模块
这些模块不会提供请求服务,而是协助服务器引擎执行其内部操作。
模块名称: | UriCacheModule |
---|---|
说明: | 实现特定于 URL 的服务器状态的通用缓存,例如配置。 在此模块中,服务器仅读取特定 URL 的第一个请求的配置,并在后续请求中重复使用该配置,直到其更改为止。 |
配置节: | 无。 |
依赖项: | 无。 |
移除此模块后的潜在问题 | 由于会缓存每个请求的每个 URL 检索状态,因此造成性能损失。 |
模块名称: | FileCacheModule |
说明: | 缓存由服务器引擎和模块打开的文件的文件句柄。 |
配置节: | 无。 |
依赖项: | 无。 |
移除此模块后的潜在问题 | 性能损失。 如果未缓存文件句柄,则必须为每个请求打开文件。 |
模块名称: | TokenCacheModule |
说明: | 缓存基于密码的身份验证方案(匿名身份验证、基本身份验证、IIS 客户端证书身份验证)的 Windows 安全令牌。 |
配置节: | 无。 |
依赖项: | 无。 |
移除此模块后的潜在问题 | 性能损失。 如果未缓存令牌,则必须为每个请求登录用户。 可能会对性能造成重大影响。 例如,如果受密码保护的 html 页面引用了 50 个也受保护的图像,则有 51 个对本地帐户数据库的 logonUser 调用,或者更严重的是,对现成域控制器的调用会导致性能问题。 |
模块名称: | ManagedEngine |
说明: | 托管引擎在所有其他模块中都有一个特殊位置。 其负责提供 IIS 集成以与 ASP.NET 运行时挂钩。 |
配置节: | |
依赖项: | 无。 |
移除此模块后的潜在问题 | ASP.NET 集成将被禁用。 当应用程序池在集成模式下运行时,不会调用在 <modules> 中声明的任何托管模块,也不会调用在 <handlers> 节的 ASP.NET 处理程序中声明的托管模块。 |
模块名称: | HttpCacheModule |
说明: | HttpCacheModule 实现 IIS 输出缓存以及用于在 http.sys 缓存中缓存项目的逻辑。 通过配置来设置缓存大小、输出缓存配置文件等。 |
配置节: | System.webServer/caching |
依赖项: | 无。 |
移除此模块后的潜在问题 | 在内核模式下,将不再缓存内容。 将忽略缓存配置文件。 移除 HttpCacheModule 可能会对性能和资源使用情况产生负面影响。 |
模块名称: | DynamicCompressionModule |
说明: | 实现动态内容的内存中压缩。 |
配置节: | system.webServer/httpCompression 和 system.webServer/urlCompression。 |
依赖项: | 不会有任何依赖项,因为默认情况下会关闭动态压缩。 |
模块名称: | StaticCompressionModule |
说明: | 实现静态内容的压缩(内存中和文件系统中的持久性)。 |
配置节: | system.webServer/httpCompression 和 system.webServer/urlCompression |
依赖项: | 无。 |
移除此模块后的潜在问题 | 由于将未压缩的内容发送回客户端,因此可能会导致带宽饱和。 |
模块名称: | DefaultDocumentModule |
说明: | 实现默认文档功能。 带有尾随 / 的请求将重新路由到默认文档列表中的文档。 |
配置节: | system.webServer/defaultDocument |
依赖项: | 无。 |
移除此模块后的潜在问题 | 对 /的请求(例如 http://localhost/ )将返回 404 错误。 如果启用了 directoryBrowsing,则会生成目录列表。 |
模块名称: | DirectoryListingModule |
说明: | 实现目录浏览功能。 |
配置节: | system.webServer/directoryBrowse |
依赖项: | 无。 |
移除此模块后的潜在问题 | 如果默认文档模块和 directoryListing 模块均未处理 / 的请求,则返回空响应。 |
模块名称: | ProtocolSupportModule |
说明: | 实现自定义和重定向响应标头。 实现跟踪和选项 HTTP 谓词。 通过配置来支持“允许或关闭保持活动”功能。 |
配置节: | system.webServer/httpProtocol |
依赖项: | 无。 |
移除此模块后的潜在问题 | TRACE 或 OPTIONS 请求会返回“405 方法不允许”错误消息。 |
模块名称: | HttpRedirectionModule |
说明: | 实现重定向功能。 |
配置节: | system.webServer/httpRedirect |
依赖项: | 无。 |
移除此模块后的潜在问题 | 如果资源受到重定向保护,则可能存在安全问题。 移除重定向模块后,内容将再次变为可访问。 |
模块名称: | ServerSideIncludeModule |
说明: | 实现服务器端 include。 此模块映射为处理程序,仅针对以 .stm、.shtm 和 .shtml 结尾的请求执行。 |
配置节: | system.webServer/serverSideInclude |
依赖项: | 无。 |
移除此模块后的潜在问题 | 静态文件模块处理 .stm、.shtm 和 .shtml 文件。 如果此模块包含用于这些扩展的 mimeMap,则文件将作为文本提供。 但请注意,这不是默认值。 |
模块名称: | StaticFileModule |
说明: | 发送扩展名为 .html、.jpg(以及其他扩展名)的静态文件。 staticContent/mimeMap 配置集合可确定文件扩展名列表。 |
配置节: | system.webServer/staticContent |
依赖项: | 无。 |
移除此模块后的潜在问题 | 静态文件不再提供。 文件请求返回“404 未找到”错误,指示没有匹配处理程序。 |
模块名称: | AnonymousAuthenticationModule |
说明: | 实现匿名身份验证。 如果 URL 配置为允许匿名身份验证,则此模块将生成 HttpUser 对象。 |
配置节: | system.webServer/security/authentication/anonymousAuthentication |
依赖项: | 无。 |
移除此模块后的潜在问题 | 必须至少配置一个身份验证模块。 IIS 服务器核心会在身份验证阶段完成后检查是否填充了 HttpUser 对象。 HttpUser 对象是一个 IIS 数据结构。 如果没有填充 HttpUser 对象的身份验证,则生成 401.2 错误。 |
模块名称: | CertificateMappingAuthenticationModule |
说明: | 将 SSL 客户端证书映射到 Active Directory 帐户(Active Directory 证书映射)。 |
配置节: | system.webServer/security/authentication/clientCertificateMappingAuthentication |
依赖项: | 必须为此模块配置 SSL 才能正常工作。 IIS 计算机还必须是 Active Directory 域的成员。 |
移除此模块后的潜在问题 | 如果 Active Directory 证书映射用于保护目录,则通常允许请求;在这种情况下,将移除此模块。 |
模块名称: | BasicAuthenticationModule |
说明: | 实现 RFC 2617 中所述的 HTTP 基本身份验证。 |
配置节: | system.webServer/security/authentication/basicAuthentication |
依赖项: | 无。 |
移除此模块后的潜在问题 | 必须至少配置一个身份验证模块。 IIS 服务器核心会在身份验证阶段完成后检查是否填充了 HttpUser 对象。 HttpUser 对象是一个 IIS 数据结构。 如果没有填充 HttpUser 对象的身份验证,则生成 401.2 错误。 |
模块名称: | WindowsAuthenticationModule |
说明: | 实现 Windows 身份验证(NTLM 或协商 (Kerberos))。 |
配置节: | system.webServer/security/authentication/windowsAuthentication |
依赖项: | 无。 |
移除此模块后的潜在问题 | 必须至少配置一个身份验证模块。 IIS 服务器核心会在身份验证阶段完成后检查是否填充了 HttpUser 对象。 HttpUser 对象是一个 IIS 数据结构。 如果没有填充 HttpUser 对象的身份验证,则会生成 401.2 错误。 |
模块名称: | DigestAuthenticationModule |
说明: | 实现 RFC 2617 中所述的摘要式身份验证。 |
配置节: | system.webServer/security/authentication/digestAuthentication |
依赖项: | IIS 服务器必须属于 Active Directory 域。 |
移除此模块后的潜在问题 | 必须至少配置一个身份验证模块。 IIS 服务器核心会在身份验证阶段完成后检查是否填充了 HttpUser 对象。 HttpUser 对象是一个 IIS 数据结构。 如果没有填充 HttpUser 对象的身份验证,则会生成 401.2 错误。 |
模块名称: | IISCertificateMappingAuthenticationModule |
说明: | 实现 IIS 证书映射。 将 SSL 客户端证书映射到 Windows 帐户。 与 Active Directory 证书映射相反,用户凭据和映射规则存储在 IIS 配置存储中 |
配置节: | system.webServer/iisClientCertificateMappingAuthentication |
依赖项: | 必须为此模块配置需要接收客户端证书的 SSL。 |
移除此模块后的潜在问题 | 必须至少配置一个身份验证模块。 IIS 服务器核心会在身份验证阶段完成后检查是否填充了 HttpUser 对象。 HttpUser 对象是一个 IIS 数据结构。 如果没有填充 HttpUser 对象的身份验证,则生成 401.2 错误。 |
模块名称: | UrlAuthorizationModule |
说明: | 根据配置规则实现授权。 |
配置节: | .webServer/security/authorization |
依赖项: | 无。 |
移除此模块后的潜在问题 | 授权规则,表示不再评估受保护内容。 可能会提供应受保护的内容。 |
模块名称: | IsapiModule |
说明: | 实现 ISAPI 扩展功能。 |
配置节: | system.webServer/isapiCgiRestriction |
依赖项: | 无。 |
移除此模块后的潜在问题 | 在 <handlers> 节 (modules="IsapiModule") 中映射的 ISAPI 扩展或显式调用的 ISAPI 扩展将不再有效。 |
模块名称: | IsapiFilterModule |
说明: | 实现 ISAPI 筛选器功能。 |
配置节: | system.webServer/isapiFilters |
依赖项: | 无。 |
移除此模块后的潜在问题 | ISAPI 筛选器通常实现应用程序所依赖的功能。 示例包括 ASP.NET 或 SharePoint。 例如,ASP.NET 需要 aspnet_filter.dll 来保护敏感内容以及重写 URL。 移除此模块会导致 IIS 无法加载 ISAPI 筛选器。 应用程序可能会停止工作,或者敏感内容可能泄露。 |
模块名称: | IpRestrictionModule |
说明: | 基于客户端请求的 IPv4 地址实现授权方案。 |
配置节: | system.webServer/security/ipSecurity |
依赖项: | 必须安装 IPv4 堆栈。 |
移除此模块后的潜在问题 | 允许 ipSecurity 列表中具有 IP 地址的客户端。 |
模块名称: | RequestFilteringModule |
说明: | 实施一套强大的安全规则,在早期阶段拒绝可疑请求。 此模块是 IIS 5.0 和 6.0 附带的 ISAPI 筛选器 UrlScan.DLL 的后续版本。 |
配置节: | system.webServer/security/requestFiltering |
依赖项: | 无。 |
移除此模块后的潜在问题 | 如果移除此模块,则 requestFiltering 节中指定的规则不再适用。 可能会导致潜在的安全问题。 |
模块名称: | CustomLoggingModule |
说明: | 在 IIS 的基础上实现 ILogPlugin 接口。 ILogPlugin 是以前的 COM 实现,让客户能够扩展 IIS 日志记录。 不建议使用此接口来扩展 IIS。 客户应改为编写模块并订阅 RQ_LOG_REQUEST 通知。 |
配置节: | system.webServer/httpLogging 和 system.applicationhost/sites/site/logFile/customLogPluginClsid |
依赖项: | 无。 |
移除此模块后的潜在问题 | 将不再调用自定义日志插件。 例如,ODBC 日志记录作为 ILogPlugin 实现。 |
模块名称: | CustomErrorModule |
说明: | 实现自定义错误和 IIS 详细错误功能。 |
配置节: | system.webServer/httpErrors |
依赖项: | 无。 |
移除此模块后的潜在问题 | 当核心服务器内出现错误时,IIS 将返回空白页,其中包含最少的信息。 远程用户可能会看到来自服务器组件的详细错误信息,这可能会导致信息泄露。 |
模块名称: | HttpLoggingModule |
说明: | 通过告诉 HTTP.SYS 要记录的内容来实现标准 IIS 日志记录。 |
配置节: | system.applicationHost/log 和 system.webServer/httpLogging |
依赖项: | 无。 |
移除此模块后的潜在问题 | 标准 IIS 日志记录将不再有效。 |
模块名称: | FailedRequestsTracingModule |
说明: | 实现对失败请求的跟踪。 通过配置来定义和设置对失败请求的规则。 |
配置节: | system.webServer/tracing 和 system.webServer/httpTracing |
依赖项: | 无。 |
移除此模块后的潜在问题 | 跟踪 http 请求将不再有效。 |
模块名称: | RequestMonitorModule |
说明: | 实现 IIS 运行时状态和控制接口 (RSCA)。 RSCA 允许用户查询运行时信息,例如当前正在执行请求、网站启动/停止状态或当前正在执行应用程序域。 |
配置节: | 无。 |
依赖项: | 无。 |
移除此模块后的潜在问题 | 工具无法枚举当前正在执行的请求。 |
模块名称: | CgiModule |
说明: | 在 IIS 的基础上实现 CGI。 |
配置节: | system.webServer/cgi 和 system.webServer/isapiCgiRestriction |
依赖项: | 无。 |
移除此模块后的潜在问题 | CGI 程序将停止工作。 |
模块名称: | TracingModule |
说明: | 实现 ETW 跟踪。 |
配置节: | system.webServer/httpTracing |
依赖项: | 无。 |
移除此模块后的潜在问题 | 如果移除此模块,ETW 跟踪将不起作用。 |
模块名称: | ConfigurationValidationModule |
说明: | 验证 ASP.NET 应用程序配置是否已迁移为在集成模式下工作。 |
配置节: | system.webServer/Validation |
依赖项: | 无。 |
移除此模块后的潜在问题 | 为模块和处理程序指定旧 ASP.NET 配置的应用程序不会生成迁移错误,但尚未迁移的新应用程序将无法正常运行。 |
托管模块:
模块名称: | OutputCache |
---|---|
说明: | 实现 ASP.NET 输出缓存功能。 |
配置节: | system.web/caching/outputCache |
依赖项: | 必须安装 ManagedEngine 模块。 |
移除此模块后的潜在问题 | 如果页面配置为将输出进行缓存,则 ASP.NET 无法将缓存响应输出到此类页面。 |
模块名称: | 会话 |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档 |
配置节: | system.web/sessionState |
依赖项: | 必须安装 ManagedEngine 模块 |
移除此模块后的潜在问题 | 托管会话状态不可用。 |
模块名称: | WindowsAuthentication |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档。 |
配置节: | system.web/authentication |
依赖项: | 必须安装 ManagedEngine 模块 |
移除此模块后的潜在问题 | 不会引发 WindowsAuthentication.OnAuthenticate 事件,这可能会导致某些自定义 ASP.NET 身份验证代码无法运行。 此外,在 UNC 共享时,不会将经过身份验证的用户替换为 UNC 用户(旧版 ASP.NET 的行为)。 此模块不会影响集成模式下 ASP.NET 应用程序的 NTLM/Kerberos 身份验证,并且在 WindowsAuthentication.OnAuthenticate 事件和旧 UNC 行为之外,并不需要此模块。 |
模块名称: | FormsAuthentication |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档。 |
配置节: | system.web/authentication |
依赖项: | 必须安装 ManagedEngine 模块 |
移除此模块后的潜在问题 | ASP.NET 基于表单的身份验证功能将不可用,这会导致具有表单身份验证票证的客户端无法访问受保护的资源。 |
模块名称: | DefaultAuthentication |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档。 |
配置节: | system.web/authentication |
依赖项: | 必须安装 ManagedEngine 模块 |
移除此模块后的潜在问题 | 如果 ASP.NET 身份验证模式为“表单”,某些 ASP.NET 功能可能无法用于匿名请求。 此外,不会引发 DefaultAuthentication.OnAuthenticate 事件。 |
模块名称: | RoleManager |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档。 |
配置节: | 无。 |
依赖项: | 必须安装 ManagedEngine 模块。 |
移除此模块后的潜在问题 | 角色管理器功能不可用。 |
模块名称: | UrlAuthorization |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档。 本机 UrlAuthorization 模块以本机代码实现 URL 授权功能。 这提供了一种可缩放且快速的本机方法,以取代托管 URL 授权模块。 |
配置节: | system.web/authorization。 |
依赖项: | 必须安装 ManagedEngine 模块。 |
移除此模块后的潜在问题 | ASP.NET 授权规则将被忽略,可能会导致信息泄露和其他安全漏洞。 |
模块名称: | AnonymousIdentification |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档。 |
配置节: | |
依赖项: | 必须安装 ManagedEngine 模块。 |
移除此模块后的潜在问题 | ASP.NET 配置文件使用的匿名标识功能将不起作用。 |
模块名称: | Profile |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档。 |
配置节: | |
依赖项: | 必须安装 ManagedEngine 模块。 |
移除此模块后的潜在问题 | ASP.NET 配置文件功能将不起作用。 |
模块名称: | UrlMappingsModule |
说明: | 有关详细信息,请参阅 ASP.NET 2.0 文档。 |
配置节: | |
依赖项: | 必须安装 ManagedEngine 模块。 |
移除此模块后的潜在问题 | ASP.NET URL 映射将不起作用。 |