httpRuntime 元素(ASP.NET 设置架构)

[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]

配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求。

<httpRuntime
   apartmentThreading = "[True|False]"
   appRequestQueueLimit = "number"
   delayNotificationTimeout = "number"
   enable = "[True|False]" 
   enableHeaderChecking = "[True|False]" 
   enableKernelOutputCache = "[True|False]" 
   enableVersionHeader = "[True|False]" 
   encoderType = "string"
   executionTimeout = "number" 
   maxQueryStringLength = "number"
   maxRequestLength = "number" 
   maxUrlLength = "number"
   maxWaitChangeNotification = "number" 
   minFreeThreads = "number" 
   minLocalRequestFreeThreads = "number" 
   relaxedUrlToFileSystemMapping = "[True|False]"
   requestLengthDiskThreshold = "number" 
   requestPathInvalidCharacters = "string"
   requestValidationMode = "[2.0|4.0]"
   requestValidationType = "string"
   requireRootedSaveAsPath = "[True|False]"
   sendCacheControlHeader = "[True|False]" 
   shutdownTimeout = "number"
   targetFramework = "number"   useFullyQualifiedRedirectUrl = "[True|False]" 
   waitChangeNotification = "number" />

特性和元素

以下几节描述了特性、子元素和父元素。

特性

特性

说明

apartmentThreading

可选的 Boolean 特性。

启用单元线程处理以实现传统的 ASP 兼容性。

默认值为 False。

appRequestQueueLimit

可选的 Int32 特性。

指定 ASP.NET 将为应用程序排队的请求的最大数目。 当没有足够的自由线程来处理请求时,将对请求进行排队。 当队列超出了该特性中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。

默认值为 5000。

delayNotificationTimeout

可选的 Int32 特性。

指定延迟通知的超时值(单位为秒)。

默认值为 5 秒。

encoderType

获取或设置可用于处理 HTML 和 URL 编码的自定义类型的名称。

ASP.NET 使用 HttpEncoder 类型作为 HTML 和 URL 编码任务的默认处理程序。 若要自定义编码行为,您可以创建从 HttpEncoder 类型继承的类。 然后,在应用程序的配置文件中,您可以将 httpRuntime 元素的 EncoderType 特性设置为自定义类型的完全限定字符串名称。

此特性是 .NET Framework 4.0 版中的新特性。

enable

可选的 Boolean 特性。

指定是否在当前的节点及子节点级别启用应用程序域 (AppDomain),以接受传入的请求。 如果为 False,则实际上关闭了该应用程序。

默认值为 True。

enableHeaderChecking

可选的 Boolean 特性。

指定 ASP.NET 是否应检查请求标头,以检测可能的注入式攻击。 如果检测到攻击,ASP.NET 将返回错误作为响应。

默认值为 True。

enableKernelOutputCache

可选的 Boolean 特性。

指定是否启用输出缓存。 该特性只有在安装 Microsoft Internet 信息服务 (IIS) 6.0 或更高版本之后才起相应的作用。 输出缓存的配置和请求的类型决定了是否对内容进行缓存。

若要对响应进行缓存,必须满足以下条件:

  • 必须通过页指令或使用缓存 API 显式启用缓存。

  • 缓存必须具有过期策略,以便内核知道何时放弃响应。

  • 缓存不能有任何可变标头或参数。

  • 不需要身份验证。

默认值为 True。

enableVersionHeader

可选的 Boolean 特性。

指定 ASP.NET 是否应输出版本标头。 Microsoft Visual Studio 2005 利用此特性确定所使用的 ASP.NET 的版本。 对于生产环境,该属性不是必需的,可以禁用。

NoteNote
该特性在 .NET Framework 1.0 中不可用。

默认值为 True。

executionTimeout

可选的 Int32 特性。

指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。

仅当调试属性中,将应用此超时compilation元素是False 。 因此,如果debug属性是True ,而不必将此属性设置为较大值,以避免在调试时将应用程序关闭。

默认值为 110 秒。

maxRequestLength

可选的 Int32 特性。

指定输入流缓冲阈值限制(以 KB 为单位)。 此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。

默认值为 4096 KB。 超过此阈值将引发 ConfigurationErrorsException 异常。

maxWaitChangeNotification

可选的 Int32 特性。

指定从第一次文件更改通知开始,在为新请求重新启动 AppDomain 之前等待的最长时间(秒)。 将此特性设置为一个大于完成任何文件复制过程所需时间的数值。 根据该特性和 waitChangeNotification 特性的值来合并文件更改通知。

默认值为 0。

minFreeThreads

可选的 Int32 特性。

指定允许执行新请求的自由线程的最小数目。 ASP.NET 为要求附加线程来完成其处理的请求而使指定数目的线程保持自由状态。

默认值为 8。

minLocalRequestFreeThreads

可选的 Int32 特性。

指定 ASP.NET 保持的允许执行新本地请求的自由线程的最小数目。 这一指定的线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。 这有助于避免可能的因递归重新进入 Web 服务器而导致的死锁。

默认值为 4。

requestValidationMode

可选的 Int32 特性。

获取或设置一个版本号,该版本号指示将使用哪种 ASP.NET 版本特定的验证方法。

未验证分配给此属性的值是否匹配特定版本的 ASP.NET。 任何小于 4.0(例如 3.7、2.9 或 2.0)的数值将被解释为 2.0。 任何大于 4.0 的数值将被解释为 4.0。

默认值为 4.0。

requestValidationType

可选的 String 特性。

获取或设置用于验证 HTTP 请求的类型的名称。

若要自定义 ASP.NET 请求验证行为,您可以创建从 RequestValidator 类型继承的类。 在应用程序的配置文件,然后设置requestValidationType属性的httpRuntime的自定义类型的完全限定的字符串名称的元素

默认值为 ASP.NET 用于验证的 RequestValidator 类型的完全限定名称。

requestLengthDiskThreshold

可选的 Int32 特性。

指定输入流缓冲阈值的限值(以千字节为单位)。 该值不应超过 maxRequestLength 特性。

默认值为 80 KB。

requireRootedSaveAsPath

可选的 Boolean 特性。

指定 SaveAs 方法中的 filename 参数是否必须为绝对路径。 ASP.NET 进程必须具有在指定位置中创建文件的权限。

默认值为 True。

sendCacheControlHeader

可选的 Boolean 特性。

指定是否发送默认情况下设置为 Private 的缓存控制标头。 如果为 True,则客户端缓存被禁用。

默认值为 True。

shutdownTimeout

可选的 Int32 特性。

指定辅助进程关闭所允许的分钟数。 在超时过期后,ASP.NET 关闭辅助进程。

默认值为 90 秒。

targetFramework

可选的 String 特性。

指定的版本号,指示将使用的公共语言运行库 (CLR) 的特定于版本的框架。 如果忽略此属性,则目标框架设置为 4.0。

默认值为 Null。

useFullyQualifiedRedirectUrl

可选的 Boolean 特性。

指定客户端重定向是否是完全限定的(采用 "https://server/path" 形式,这是某些移动控件所必需的),或者指定是否代之以将相对重定向发送到客户端。 如果为 True,则所有不是完全限定的重定向都将自动转换为完全限定的格式。

NoteNote
如果此特性设置为 False,则某些浏览器在加载无 Cookie 会话中的页时可能会遇到问题。

默认值为 False。

waitChangeNotification

可选的 Int32 特性。

指定重新启动 AppDomain 之前等待另一次文件更改通知的时间(以秒为单位)。 将此特性设置为一个大于两次文件复制更改通知更新之间的时间的数值。 根据该特性和 maxWaitChangeNotification 特性的值来合并文件更改通知。

默认值为 0 秒。

maxQueryStringLength

可选的 Int32 特性。

查询字符串的最大长度,以字符数表示。 默认值为 2048。

MaxQueryStringLength 属性的值可以是任何等于或大于零的整数。 如果查询字符串的长度超过大小限制,ASP。NET 返回HTTP 400 (错误请求) 状态代码。

NoteNote
极小值可能使 Web 站点不可用。
NoteNote
此外,还有 IIS 设置,来控制查询字符串的长度。请参阅maxQueryString属性中请求限制 <requestLimits>

maxUrlLength

可选的 Int32 特性。

中的字符数的 URL,最大长度。 默认值为 260。

MaxUrlLength 属性的值可以是任何等于或大于零的整数。

如果请求 URL 的长度(Path 属性的值)超过配置的大小限制,则 ASP.NET 返回 HTTP 400(错误请求)状态代码

NoteNote
极小值可能使 Web 站点不可用。此外,还有 IIS 设置,来控制查询字符串的长度。请参阅maxQueryString属性中请求限制 <requestLimits>

relaxedUrlToFileSystemMapping

可选的 Boolean 特性。

指示是否需要是有效的 Windows 文件路径中的 HTTP 请求的 URL。

RelaxedUrlToFileSystemMapping 属性确定如何验证传入的 HTTP 请求中的 URL。 如果此属性为 false,则使用用于确定 Windows 文件系统路径是否有效的相同规则来验证该 URL。

requestPathInvalidCharacters

可选的 String 特性。

在请求路径中无效的字符的列表以逗号分隔)。 以下列表包含默认的无效字符集:

<,>,*,%,&,:,\

子元素

无。

父元素

元素

说明

configuration

公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

system.web

指定配置文件中 ASP.NET 配置设置的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为方式的配置元素。

备注

httpRuntime 元素配置 ASP.NET HTTP 运行时设置,这些设置确定如何处理对 ASP.NET 应用程序的请求。 .NET Framework 提供了许多不同的运行时宿主,包括 ASP.NET 运行时宿主。 请求到达时,ASP.NET 将运行时加载到要处理请求的进程中。 ASP.NET 还为将在 Web 服务器上运行的每个 Web 应用程序创建一个应用程序域。

默认配置

Machine.config 文件或根 Web.config 文件中未显式定义 httpRuntime 元素。 但是,以下设置是系统初始化的默认值。 如果需要自定义此节,必须在配置文件中创建它并且只定义那些需要自定义的特性。

<httpRuntime 
   apartmentThreading="false"
   appRequestQueueLimit="5000"
   delayNotificationTimeout="5"
   enable="true"
   enableHeaderChecking="true"
   enableKernelOutputCache="true"
   enableVersionHeader="true"
   encoderType = "System.Web.Util.HttpEncoder"
   executionTimeout="110"
   maxQueryStringLength = "2048"
   maxRequestLength="4096"
   maxUrlLength = "260"
   maxWaitChangeNotification="0"
   minFreeThreads="8"
   minLocalRequestFreeThreads="4"
   relaxedUrlToFileSystemMapping = "False"
   requestLengthDiskThreshold="80"
   requestPathInvalidCharacters = "<,>,*,%,&,:,\"
   requestValidationMode = "4.0"
   requestValidationType = "System.Web.Util.RequestValidator"
   requireRootedSaveAsPath="true"
   sendCacheControlHeader="true"
   shutdownTimeout="90"
   useFullyQualifiedRedirectUrl="false"
   waitChangeNotification="0" />

示例

下面的示例演示如何为 ASP.NET 应用程序指定 HTTP 运行时参数。

<configuration>
  <system.web>
  <httpRuntime maxRequestLength="4000"
    enable = "True"
    requestLengthDiskThreshold="512
    useFullyQualifiedRedirectUrl="True"
    executionTimeout="45"
    versionHeader="1.1.4128"/>
  </system.web>
</configuration>

元素信息

配置节处理程序

HttpRuntimeSection

配置成员

HttpRuntime

可配置的位置

Machine.config

根级别的 Web.config

应用程序级别的 Web.config

虚拟或物理目录级别的 Web.config

要求

Microsoft Internet Information Services (IIS) 5.0 或更高版本

请参见

参考

system.web 元素(ASP.NET 设置架构)

configuration 元素(常规设置架构)

System.Configuration

HttpRuntimeSection

HttpRuntime

概念

Securing Configuration

其他资源

常规配置设置 (ASP.NET)

Configuring ASP.NET Applications