HttpErrorsSection 类

配置 Web 服务器的 HTTP 错误处理。

语法

class HttpErrorsSection : ConfigurationSectionWithCollection  

方法

下表列出了 HttpErrorsSection 类公开的方法。

名称 说明
添加 (继承自 ConfigurationSectionWithCollection。)
清除 (从 ConfigurationSectionWithCollection 继承。)
Get (从 ConfigurationSectionWithCollection 继承。)
GetAllowDefinition (继承自 ConfigurationSection。)
GetAllowLocation (从 ConfigurationSection 继承。)
删除 (从 ConfigurationSectionWithCollection 继承。)
RevertToParent (从 ConfigurationSection 继承。)
SetAllowDefinition (从 ConfigurationSection 继承。)
SetAllowLocation (从 ConfigurationSection 继承。)

属性

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

名称 描述
DefaultPath 一个可选 string 值,包含 HTTP 错误文件或 URL 的默认路径。 非空时,此值由新创建的 HttpErrorElement 对象的 Path 属性继承。
DefaultResponseMode 一个可选 sint32 值,用于配置对 HTTP 错误的默认响应。 非空时,此值由新创建的 HttpErrorElement 对象的 ResponseMode 属性继承。 后文的“注解”部分列出了可能的值。
DetailedMoreInformationLink 一个可选的读/写 string 值,指定页面底部显示的链接的 URL,此链接指向一个页面,其中包含有关所引发错误的详细信息。 错误的 statussubstatushresultmessageid 作为查询字符串的一部分发送。 可以使用此属性将最终用户指向一个自定义位置,以便向用户显示错误信息。 默认为 https://go.microsoft.com/fwlink/?LinkID=62293
ErrorMode 一个读/写 sint32 枚举,指定是启用、禁用还是仅向本地客户端显示详细错误功能。 后文的“注解”部分列出了可能的值。
ExistingResponse 一个读/写 sint32 枚举,指定 IIS 如何处理现有自定义错误。 后文的“注解”部分列出了可能的值。
HttpErrors 一个 HttpErrorElement 值数组,用于配置特定 HTTP 错误的处理方式。
Location (继承自 ConfigurationSection。)一个键属性。
Path (继承自 ConfigurationSection。)一个键属性。
SectionInformation (从 ConfigurationSection 继承。)

子类

此类不包含子类。

注解

此类公开配置文件的 <httpErrors> 节中的设置。

HttpErrorsSection 类表示的自定义错误与 IIS 7 相关,并且位于 System.WebServer.Configuration namespace 命名空间中。 每个错误都由 HttpErrorElement 类的实例表示。

CustomErrorsSection 类表示的自定义错误特定于 ASP.NET,并且位于 System.Web namespace 命名空间中。 每个错误都由 CustomError 类的实例表示。

下表列出了 DefaultResponseMode 属性的可能值。 默认值为 0 (File)。

关键字 说明
0 File Web 服务器从 HttpErrorElement 类的 Path 属性中指定的静态文件返回网页。 注意:自定义错误是特定于语言的,通常以客户端的语言返回自定义错误。 这要求安装客户端的语言包。 文件路径结构如下:PrefixLanguageFilePath\ClientLanguageID\ErrorCodeFile 例如,如果 PrefixLanguageFilePath 为“d:\inetpub\custerr”,客户端浏览器在 Accept-Language 标头中发送“en-us”,错误代码为 404,则安装 en-US 语言包时生成的路径为 d:\inetpub\custerr\en-us\404.htm。 如果系统语言为 ja-JP,并且未安装 en-US 语言包,则生成的路径为 d:\inetpub\custerr\ja-jp\404.htm。
1 ExecuteURL Web 服务器返回在 HttpErrorElement 类的 Path 属性中指定的内部 ASP 页。 URL 应位于同一应用程序池的范围内。 注意:在 IIS 7 中,重定向会创建以下格式的 URL(括号中的项是可选的): /<CustomErrorPage>[?<QueryString>]&resourcePath=<OriginalURL>[?<OriginalQueryString>]&statusCode=<StatusCode>
2 Redirect Web 服务器提供 HTTP 302 Found 响应,并在响应的 Location 字段中包含 HttpErrorElement 类的 Path 属性中指定的 URL。 如果响应是方法 GET 而不是 HEAD 方法,则还应包含一个实体,其中具有指向新 URL 的简短超链接。 注意:在 IIS 7 中,重定向会创建以下格式的 URL(括号中的项是可选的): /<CustomErrorPage>[?<QueryString>]&resourcePath=<OriginalURL>[?<OriginalQueryString>]&statusCode=<StatusCode>

下表列出了 ErrorMode 属性的可能值。 默认值为 0 (DetailedLocalOnly)。

关键字 说明
0 DetailedLocalOnly 仅当请求是来自本地计算机时,才会生成详细的错误响应。 如果请求是来自外部地址,服务器将生成自定义错误响应。 注意:ExistingResponse 属性的值确定是生成详细错误还是自定义错误。
1 Custom 模块或服务器生成的错误将替换为指定的自定义页面。 此模式可用于向最终用户提供更友好的错误消息。 注意:此设置会关闭详细错误,即使对于本地请求也是如此。
2 Detailed 显示包含有关应用程序错误详细信息的页面,不显示自定义错误。 此模式可用于测试和调试网站和应用程序。 注意:将 ErrorMode 设置为 Detailed 存在安全风险,因为即使是远程客户端也会收到详细的错误信息,这可能会导致不必要的信息泄露。

下表列出了 ExistingResponse 属性的可能值。 默认值为 0 (Auto)。

关键字 说明
0 Auto 响应取决于以下一组有序条件的第一个成功匹配:

1.如果使用 fTrySkipCustomErrors 标志调用 IHttpResponse::SetStatus 方法,则传递现有响应,并且不显示详细错误和自定义错误。
2.如果 ErrorMode 属性设置为 Custom,则将替换响应。
3.如果 ErrorMode 设置为 Detailed 且存在现有响应,则传递响应。
4.如果 ErrorMode 设置为 Detailed 但不存在现有响应,则响应将被替换为详细错误。
1 Replace 无论如何调用 SetStatus,现有响应始终被替换。
2 PassThrough 始终使用现有响应。

示例

下面的代码示例为 DefaultPathErrorModeDetailedMoreInformationLink 属性指定新值。 帮助程序函数显示更改前后的配置节值。

' Connect to the WMI WebAdministration namespace.  
Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")  

' Get the HTTP errors section.  
Set oSection = oWebAdmin.Get( _  
    "HttpErrorsSection.Path='" & _  
    "MACHINE/WEBROOT/APPHOST/',Location=''")  

' Display the class name of the section.  
WScript.Echo "[ " & oSection.Path_.Class & " ]"  

' Display the initial values.  
Call DisplayValues("Initial Values", oSection)

' Specify the path of a default error page.  
oSection.DefaultPath = _  
    "D:\inetpub\custerr\en-US\contoso\DefaultErrorPage.htm"  

' Specify a detailed more information link.  
oSection.DetailedMoreInformationLink = "http://www.contoso.com/MoreInfo.htm"  

'Set the ErrorMode property to Custom.  
oSection.ErrorMode = 1  

' Save the values to configuration.  
oSection.Put_  

' Refresh the oSection object variable with the new values.  
oSection.Refresh_  

' Display the changed values.  
Call DisplayValues("New Values", oSection)  

' ==== DisplayValues helper function. ====  
Function DisplayValues(HeadingText, oSection)  

    ' Display a heading.  
    WScript.Echo  
    WScript.Echo HeadingText  
    WScript.Echo String(Len(HeadingText), "-")  

    ' Display the non-embedded section properties.  
    For Each prop In oSection.Properties_  

        If Left( _  
            Prop.Qualifiers_("CIMTYPE"), 6) _  
            <> "object" then  
            WScript.Echo prop.Name & ": " & prop.Value  
        End If  

    Next
End Function

继承层次结构

ConfigurationSection

ConfigurationSectionWithCollection

HttpErrorsSection

要求

类型 描述
客户端 - Windows Vista 上的 IIS 7.0
- 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

另请参阅

ConfigurationSection 类
ConfigurationSectionWithCollection 类
CustomError 类
CustomErrorsSection 类
HttpErrorElement 类
IHttpResponse::SetStatus 方法