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
继承层次结构
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 方法