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,此链接指向一个页面,其中包含有关所引发错误的详细信息。 错误的 status 、substatus 、hresult 和 messageid 作为查询字符串的一部分发送。 可以使用此属性将最终用户指向一个自定义位置,以便向用户显示错误信息。 默认为 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 |
始终使用现有响应。 |
示例
下面的代码示例为 DefaultPath
、ErrorMode
和 DetailedMoreInformationLink
属性指定新值。 帮助程序函数显示更改前后的配置节值。
' 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
继承层次结构
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 方法