应用到: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista
若要增强 Web 服务器的功能,可以添加 ISAPI 筛选器。 例如,您可以设置一个 ISAPI 筛选器来捕获有关 HTTP 请求的信息,并将该信息保存在数据库中。
![]() |
---|
虽然 IIS 7 支持 ISAPI 筛选器,但我们建议您使用模块而不是 ISAPI 筛选器来扩展 Web 服务器的功能。 有关详细信息,请参阅在 IIS 7 中配置模块。 |
您可以在服务器和站点级别添加 ISAPI 筛选器。 如果在服务器级别添加 ISAPI 筛选器,该筛选器将截获向服务器发出的所有请求。 如果将 ISAPI 筛选器添加到特定的站点中,该筛选器将截获向该站点发出的所有请求。
先决条件
添加 ISAPI 筛选器
您可以通过以下方法执行此过程:使用用户界面 (UI)、在命令行窗口中运行 Appcmd.exe 命令、直接编辑配置文件或编写 WMI 脚本。
用户界面
使用 UI
-
打开 IIS 管理器,然后导航至您要管理的级别。 有关如何打开 IIS 管理器的信息,请参阅 打开 IIS 管理器 (IIS 7)。 有关如何在 UI 的各个位置间进行导航的信息,请参阅 在 IIS 管理器中导航 (IIS 7)。
-
在“功能视图”的“server主页”或“site 主页”页上,双击“ISAPI 筛选器”。
-
在“ISAPI 筛选器”页的“操作”窗格中,单击“添加”。
-
在“添加 ISAPI 筛选器”对话框中,请执行下列操作:
- 在“筛选器名称”框中,为 ISAPI 筛选器键入一个好记的名称。
- 在“可执行文件”框中,键入 ISAPI 筛选器文件所在的文件系统路径,或单击浏览按钮(“...”)导航至 ISAPI 筛选器文件所在的文件夹。
- 在“筛选器名称”框中,为 ISAPI 筛选器键入一个好记的名称。
-
单击“确定”。
命令行
若要添加 ISAPI 筛选器,请使用以下语法:
appcmd set config /section:isapiFilters /+[name=' string ',path=' string ',enabled='true|false',enableCache='true|false',preCondition='string']
变量 namestring 是要添加的 ISAPI 筛选器的名称。变量 pathstring 是 ISAPI 筛选器的 .dll 文件的物理 path。
此外,您还可以指定以下可选属性的值:enabled、enableCache 和 preCondition。 默认情况下,enabled 属性为 true,enableCache 属性为 false,不存在前提条件。 如果要禁用 ISAPI 筛选器,可以为 enabled 指定 false。 如果要使 ISAPI 筛选器以友好方式缓存到 HTTP.sys 中,即该筛选器并不是有条件地将 /default.htm 的 URL 重新路由到 /default-1.htm 或 /default-2.htm,可以为 enableCache 属性执行 true。 最后,如果 ISAPI 筛选器已设置了某些运行条件,您可以添加一些前提条件,例如 bitness32,它指定 ISAPI 筛选器只能在 32 位的工作进程中运行。
例如,若要添加前提条件为只能在 32 位工作进程中运行,且 .dll 文件位于 .NET Framework 2.0 版目录中的 ISAPI 筛选器 ResponseFilter,请在命令提示符处键入以下命令,然后按 Enter:
appcmd set config /section:isapiFilters /+[name=' ResponseFilter ',path='%windir%\Microsoft.NET\Framework\v2.0.50727\ responseFilter .dll',preCondition='bitness32']
有关 Appcmd.exe 的详细信息,请参阅 Appcmd.exe (IIS 7) 。
配置
WMI
请使用以下 WMI 类、方法或属性执行此过程:
- IsapiFiltersSection.Filters.Add 方法
有关 WMI 和 IIS 的详细信息,请参阅 IIS 7 中的 Windows Management Instrumentation (WMI)。 有关与此过程关联的类、方法或属性的更多信息,请参阅 MSDN 网站上的 IIS WMI 提供程序参考(可能为英文页面)。