HandlerAction 类

公开处理程序的配置设置。

语法

class HandlerAction : CollectionElement  

方法

此类不包含任何方法。

属性

下表列出了 HandlerAction 类公开的属性。

名称 描述
AllowPathInfo 一个读/写 boolean 值。 如果处理程序将处理统一资源标识符 (URI) 中的完整路径信息,则为 true;否则为 false。 默认为 false

例如,如果为 true,则此属性将允许处理程序处理完整路径(如 /vdir/myisapi.dll/zip);如果为 false,则此属性将仅允许部分路径“/zip”。
Modules 一个读/写 string 值,指定要将文件或扩展名映射到的模块。 默认为 null
Name 一个必需的唯一读/写 string 值,指定处理程序映射的唯一名称。 唯一的键属性。
Path 一个读/写 string 值,指定要处理的文件的文件扩展名或文件名加扩展名。 默认为 null
PreCondition 一个读/写 string 值,可以选择指定处理程序可在哪些条件下运行。 后文的“注解”部分列出了可能的值。
RequireAccess 一个读/写 sint32 枚举,指定处理程序访问要求。 后文的“注解”部分列出了可能的值。
ResourceType 一个读/写 sint32 枚举,指定处理程序的映射类型。 后文的“注解”部分列出了可能的值。
ResponseBufferLimit 一个读/写 uint32 值,设置请求处理程序的响应缓冲区的最大大小(以字节为单位)。 如果在 PagesSection 类的 Buffer 属性中启用了响应缓冲,则 ResponseBufferLimit 属性控制 ASP 页在发生刷新之前可以写入响应缓冲区的最大字节数。 默认值为 4194304 字节。
ScriptProcessor 一个读/写 string 值,指定处理请求的 ISAPI 扩展 .dll 文件或 CGI.exe 文件的完整路径(如果适用)。 如果指定此属性,则必须在 Modules 属性中指定“ISAPIModule”或“CGIModule”。 默认为 null
Type 一个读/写 string 值,指定托管处理程序的命名空间路径。 指定的类型必须是位于全局程序集缓存、应用程序的 Bin 目录或 app_code 目录中的有效托管类型。 默认为 null
Verb 一个读/写 string 值,指定以逗号分隔的谓词列表。 如果希望映射应用于特定请求类型,请使用此属性。 默认为 null

子类

此类不包含子类。

注解

此类的实例包含在 HandlersSection 类的 Handlers 属性中。

下表列出了 Precondition 属性的可能值。 默认为 null

注意

前置条件的求值结果是对组成部分进行逻辑 AND 运算。 因为任何未知的前置条件求值为 false,所以未知前置条件的存在将导致未知前置条件被忽略。

说明
appPoolName=pool1;pool2 处理程序将用于以分号分隔的列表中指定的任何应用程序池。
appPoolName!=pool1;pool2 处理程序将不会用于以分号分隔的列表中指定的任何应用程序池。
bitness32 处理程序条目仅适用于 32 位工作进程。 对于 64 位计算机,应使用此值指定要在 32 位模式下运行的应用程序池。
bitness64 处理程序仅适用于 64 位工作进程。 对于 64 位计算机,应使用此值指定要在 64 模式下运行的应用程序池。
integratedMode 处理程序将仅用于集成模式下的应用程序池。
ISAPIMode 处理程序将仅用于 ISAPI 模式下的应用程序池。
runtimeVersion 处理程序将仅用于加载特定版本的公共语言运行时 (CLR) 的应用程序池。 若要启用此前置条件,以 vMajorVersion.MinorVersion 格式向字符串“runtimeVersion”追加字符串(例如,“runtimeVersionv2.0”)。

下表列出了 RequireAccess 属性的可能值。 默认值为 3 (Script)。

注意

HandlersSection 类的 AccessPolicy 属性中的设置决定了允许哪些权限,继而允许执行哪些处理程序。

关键字 说明
0 None 处理程序不要求访问权限。
1 Read 处理程序需要读取权限。
2 Write 处理程序需要写入权限。
3 Script 处理程序需要脚本权限。
4 Execute 处理程序需要可执行权限。

下表列出了 ResourceType 属性的可能值。 默认值为 3 (Unspecified)。

注意

此属性在 IIS 管理器中名为“路径类型”。

关键字 说明
0 File 映射适用于文件。 如果传入请求未映射到磁盘上的物理文件,则请求不会传递给处理程序。
1 Directory 映射适用于目录。 如果传入请求未映射到磁盘上的物理文件夹,则请求不会传递给处理程序。
2 Either 映射适用于文件或目录。 如果传入请求未映射到磁盘上的物理文件或文件夹,则请求不会传递给处理程序。
3 Unspecified 未指定映射类型。 无论请求是否映射到磁盘上的物理文件或文件夹,请求都会传递给处理程序。 如果要将处理程序映射到磁盘上不存在的文件名(例如“MyHandler.axd”),请使用此设置。

示例

下面的示例将三个不同类别的处理程序添加到 <handlers> 节:一个遗留脚本映射处理程序、两个本机模块处理程序和一个托管处理程序。

注意

添加或移除配置元素会更改基础配置节,但不更改脚本中表示配置节的对象变量。 为了使更改显示在脚本中,必须在进行更改后对对象变量调用 WMI Refresh_ 方法。 这将使用配置存储中的最新数据更新对象变量。

' Connect to the WMI WebAdministration namespace.  
Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")  
  
' Get the <handlers> section.  
Set oSite = oWebAdmin.Get("Site.Name='Default Web Site'")  
oSite.GetSection "HandlersSection", oHandlersSection  
  
' Display the old list of handlers.  
WScript.Echo "---[Old Handler List]---"  
Call DisplayHandlers  
  
' Create a legacy script map handler.  
' The required properties are Name, Modules, and ScriptProcessor.  
Set oHandler = oWebAdmin.Get("HandlerAction").SpawnInstance_  
oHandler.Name = "ASPClassic"   
oHandler.Path="*.asp"   
oHandler.Verb="GET,HEAD,POST"   
oHandler.Modules="ISAPIModule"   
oHandler.ResourceType= 0 '0 is "File"  
oHandler.ScriptProcessor = "%windir%\system32\inetsrv\asp.dll"  
  
' Add the handler to the <handlers> section.  
oHandlersSection.Add "Handlers", oHandler  
  
' Create a native module handler for static files.  
' The required properties are Name, Modules, and Path.  
Set oHandler = oWebAdmin.Get("HandlerAction").SpawnInstance_  
oHandler.Name = "StaticFile"   
oHandler.Path="*"   
oHandler.Verb="*"   
oHandler.Modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"  
oHandler.ResourceType=2  
oHandler.RequireAccess=1  
  
' Add the handler to the <handlers> section.  
oHandlersSection.Add "Handlers", oHandler  
  
' Create a native module handler for ISAPI DLLs.  
' The required properties are Name, Modules, and Path.  
oHandler.Name = "ISAPI-dll"   
oHandler.Path="*.dll"   
oHandler.Verb="*"   
oHandler.Modules="ISAPIModule"  
oHandler.ResourceType=0  
oHandler.RequireAccess=4  
oHandler.AllowPathInfo=True  
  
' Add the handler to the <handlers> section.  
oHandlersSection.Add "Handlers", oHandler  
  
' Add a managed handler.  
' The required properties are Name, Path, and Type.   
Set oHandler = oWebAdmin.Get("HandlerAction").SpawnInstance_  
oHandler.Name = "TraceHandler-Integrated"   
oHandler.Path="trace.axd"   
oHandler.Verb="GET,HEAD,POST"   
oHandler.Type="System.Web.Handlers.TraceHandler"  
oHandler.PreCondition="integratedMode"  
  
' Add the handler to the <handlers> section.  
oHandlersSection.Add "Handlers", oHandler  
  
' Call the WMI Refresh_ method to update the oHandlersSection object variable.  
oHandlersSection.Refresh_  
  
' Display the new list of handler names.   
WScript.Echo "---[New Handler List]---"  
Call DisplayHandlers  
  
' Provide a sub to display the handler names.  
Sub DisplayHandlers  
    For Each oHandler In oHandlersSection.Handlers  
         WScript.Echo "Name: " & oHandler.Name  
    Next  
    WScript.Echo  
End Sub  
  

继承层次结构

CollectionElement

HandlerAction

要求

类型 描述
客户端 - IIS 7.0(在 Windows Vista 上)
- Windows 7 上的 IIS 7.5
- Windows 8 上的 IIS 8.0
- Windows 10 上的 IIS 10.0
服务器 - Windows Server 2008 上的 IIS 7.0
- Windows Server 2008 R2 上的 IIS 7.5
- Windows Server 2012 上的 IIS 8.0
- Windows Server 2012 R2 上的 IIS 8.5
- Windows Server 2016 上的 IIS 10.0
产品 - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0
MOF 文件 WebAdministration.mof

另请参阅

AccessSection 类
CollectionElement 类
HandlersSection 类
IScriptMapInfo::GetAllowPathInfoForScriptMappings 方法