配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置。 processModel 节只能在 Machine.config 文件中进行设置,它影响服务器上运行的所有 ASP.NET 应用程序。

  Machine.config 文件位置在:%windir%\Microsoft.NET\Framework\framework_version\CONFIG 目录下,如下图是我本机的位置:

  

  注意:对 processModel 元素的更改将只有在辅助进程重新启动之后才生效,而不是像其他配置元素那样在更改设置之后立即生效。

<processModel
enable="true|false"
timeout="hrs:mins:secs|Infinite"
idleTimeout="hrs:mins:secs|Infinite"
shutdownTimeout="hrs:mins:secs|Infinite"
requestLimit="num|Infinite"
requestQueueLimit="num|Infinite"
restartQueueLimit="num|Infinite"
memoryLimit="percent"
webGarden="true|false"
cpuMask="num"
userName="<username>"
password="<secure password>"
logLevel="All|None|Errors"
clientConnectedCheck="hrs:mins:secs|Infinite"
comAuthenticationLevel="Default|None|Connect|Call|
Pkt|PktIntegrity|PktPrivacy"
comImpersonationLevel="Default|Anonymous|Identify|
Impersonate|Delegate"
responseDeadlockInterval="hrs:mins:secs|Infinite"
responseRestartDeadlockInterval="hrs:mins:secs|Infinite"
autoConfig="true|false"
maxWorkerThreads="num"
maxIoThreads="num"
minWorkerThreads="num"
minIoThreads="num"
serverErrorMessageFile=""
pingFrequency="Infinite"
pingTimeout="Infinite"
maxAppDomains="2000"
/>

特性和元素

特性

特性

说明

autoConfig

指定是否自动配置下列设置,以便基于计算机配置实现最佳性能:

这些值按照位于 http://support.microsoft.com/?id=821268 上的知识库文章进行设置。

此特性不影响 .NET Framework 客户端应用程序,而只影响 ASP.NET 应用程序。

autoConfig 特性可以为下列值之一。

 
术语 定义
True 指示 ASP.NET 自动配置上述列表中的特性,以便基于计算机配置实现最佳性能。
False 指示 ASP.NET 应当使用为上述列表中的特性显式定义的值。

除非以前已经有一个现有配置,否则 Machine.config 文件中的默认值为 True。

clientConnectedCheck

指定在 ASP.NET 检查以确定客户端是否已连接前在队列中保留的请求的长度。

默认值为 "00:00:05"(5 秒)。

comAuthenticationLevel

指定 DCOM 安全的身份验证级别。

comAuthenticationLevel 特性可以为下列值之一。

 
Value 说明
Call 指定在每一远程过程调用的开始当服务器接收请求时 DCOM 验证客户端的凭据。
Connect 指定只有在客户端与服务器建立连接时 DCOM 才验证客户端的凭据。
Default 指定 DCOM 使用其标准安全协商算法确定身份验证级别。
None 不指定身份验证。
Pkt 指定 DCOM 验证所接收的所有数据是否都来自预期的客户端。 数据报传输始终使用 Pkt 身份验证。
PktIntegrity 指定 DCOM 验证和确认未修改在客户端和服务器之间传输的任何数据。
PktPrivacy 指定 DCOM 验证所有以前的级别并加密每一远程过程调用的参数值。

默认值为 Connect。

comImpersonationLevel

指定 COM 安全的身份验证级别。

comImpersonationLevel 特性可以为下列值之一。

 
Value 说明
Anonymous 指定客户端对于服务器而言是匿名的。 服务器可以模拟客户端,但是模拟标记不会包含任何信息。 在 .NET Framework 1.1 版中,不支持 Anonymous。
Default 指定 DCOM 使用其标准安全协商算法确定模拟级别。
Delegate 指定服务器进程在代表客户端来执行时可以模拟客户端的安全上下文。 服务器进程还可以在代表客户端时使用掩饰向其他服务器发出传出呼叫。 服务器可以使用其他计算机上的客户端的安全上下文,以作为客户端来获得对本地和远程资源的访问权限。 当在该级别模拟时,可以让模拟标记穿过任意数目的计算机边界。
Identify 指定服务器可以包含客户端的标识。 服务器可以模拟客户端以进行访问控制列表 (ACL) 检查,但是无法作为客户端访问系统对象。
Impersonate 指定服务器进程在代表客户端来执行时可以模拟客户端的安全上下文。 此级别的模拟可用来访问本地资源,如文件。 当在该级别模拟时,模拟标记可以只横穿一个计算机边界。

默认值为 Impersonate。

cpuMask

指定在多处理器服务器上哪些处理器 (CPU) 可以运行 ASP.NET 进程。 该值指定一个位模式,它指示满足运行 ASP.NET 线程的条件的 CPU。 例如,cpuMask 十六进制值 0x0d 代表位模式 1101。 在具有四个 CPU 的计算机上,这表明可以在 CPU 0、2,和 3,而不是 CPU 1 上安排 ASP.NET 进程。 ASP.NET 为满足条件的每个 CPU 启动一个辅助进程。 如果 webGarden 特性为 true,则该特性会将辅助进程限制为满足条件的 CPU 的数目。 最大辅助进程数目等于 CPU 的数目。 如果 webGarden 为 false,则该特性被忽略,并且将只有一个辅助进程运行。 这是默认行为。

默认值为 "0xffffffff"。

enable

指定是否启用进程模型。

enable 特性可以为下列值之一。

 
Value 说明
True 指示进程模型已启用。
False 指示进程模型未启用。

默认值为 true。

idleTimeout

以字符串格式 (hr:min:sec) 指定不活动期限,在该不活动期限后,ASP.NET 将自动结束辅助进程。

默认值为 Infinite。

logLevel

指定要记录到事件日志的事件类型。

logLevel 特性可以为下列值之一。

 
Value 说明
All 指定记录所有进程事件。
Errors 指定只记录意外关闭、内存限制关闭和死锁关闭。
None 指定不记录任何事件。

默认值为 Errors。

maxAppDomains

指定一个进程中允许的应用程序域的最大数目。

该特性可以小于或等于 2000。

默认值为 2000。

maxIoThreads

按 CPU 配置用于进程的 I/O 线程的最大数目。 例如,如果此值在单处理器服务器上为 25,则 ASP.NET 将使用运行时 API 将进程限制设置为 25。 在双处理器服务器上,限制设置为 50。 此特性的值必须大于等于 httpRuntime 配置选项中的 minFreeThread 特性设置。

有关线程处理类型的信息,请参见 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(线程处理说明)。

该特性的范围是从 5 到 100。

默认值为 20。

maxWorkerThreads

按 CPU 配置用于进程的辅助线程的最大数目。 例如,如果此值在单处理器服务器上为 25,则 ASP.NET 将使用运行时 API 将进程限制设置为 25。 在双处理器服务器上,限制设置为 50。 此特性的值必须大于等于 httpRuntime 配置选项中的 minFreeThread 特性设置。

有关线程处理类型的信息,请参见 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(线程处理说明)。

该特性的范围是从 5 到 100。

默认值为 20。

memoryLimit

指定在 ASP.NET 启动新进程和重新分配现有请求前,辅助进程可以使用的最大内存大小。该属性的单位为相对于总系统内存的百分比。

默认值为 60。

minIoThreads

按 CPU 配置用于进程的 I/O 线程的最小数目。 另外,请参见 maxIoThreads。

有关线程处理类型的信息,请参见 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(线程处理说明)。

默认值为 1。

minWorkerThreads

按 CPU 配置用于进程的辅助线程的最小数目。 另外,请参见 maxWorkerThreads。

有关线程处理类型的信息,请参见 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(线程处理说明)。

默认值为 1。

password

如果它存在并且与 userName 一起使用,将导致辅助进程使用配置的 Microsoft Windows 标识运行。 请参见 userName,获取有关无需密码的特殊名称 System 和 Machine 的更多信息,以及有关在注册表中存储加密的辅助进程凭据的信息。

Note
在配置文件中存储凭据会有安全风险。 有关更多信息,请参见本文档后面的“在注册表中存储用户名和密码”。

默认值为 AutoGenerate。

pingFrequency

以标准进程模型格式 (hr:min:sec) 指定时间间隔,该时间间隔是 ISAPI 扩展对辅助进程执行 ping 命令来确定其是否正在运行所采用的时间间隔。 如果在 pingTimeout 时间间隔内该辅助进程没有运行,将重新启动该辅助进程。

默认值为 Infinite。

pingTimeout

以标准进程模型格式 (hr:min:sec) 指定时间间隔,在该时间间隔后,将重新启动没有响应的响应辅助进程。 ISAPI 扩展每隔 pingFrequency 间隔会对辅助进程使用 ping 命令。 如果辅助进程在 pingTimeout 间隔内没有响应,则重新启动该进程。

默认值为 Infinite。

requestLimit

指定 ASP.NET 自动启动新辅助进程以代替当前辅助进程前允许的请求的数目。

默认值为 Infinite。

requestQueueLimit

指定队列中允许的请求数,超过此数目后,ASP.NET 将开始向新请求返回“503 - 服务器太忙”消息。

默认值为 5000。

responseDeadlockInterval

以标准进程模型格式 (hr:min:sec) 指定时间间隔,在该时间间隔后,如果满足以下条件,进程将重新启动:

  • 有排队的请求。

  • 在此时间间隔期间没有响应。

默认值为 "0:03:00"(3 分钟)。

responseRestartDeadlockInterval

ASP.NET 不再使用该特性,提供该特性只是为了兼容。 如果该属性出现在配置文件中,也不会导致配置错误。 现在,当出现死锁情况时,所有循环都将由 responseDeadlockInterval 特性控制。

默认值为 "0:03:00"(3 分钟)。

restartQueueLimit

指定在出现非标准终止后,等待辅助进程重新启动时排入队列的请求的最大数目。 如果是完全关闭或标准的重新启动,此设置将不适用。

默认值为 10。

serverErrorMessageFile

指定在发生致命错误时用来代替默认的“服务器不可用”消息的文件的内容。 该文件位置是相对于 Machine.config 文件的位置,或者可以是绝对路径。 如果该特性不存在,则使用默认的“服务器不可用”消息。

shutdownTimeout

指定辅助进程关闭所允许的分钟数。 在超时过期后,ASP.NET 关闭辅助进程。 该时间以 hr:min:sec 字符串格式表示。

默认值为 "0:00:05"(5 秒)。

timeout

指定分钟数,超过该分钟数 ASP.NET 将启动新的辅助进程以替代当前辅助进程。

默认值为 Infinite。

userName

指定 ASP.NET 将使用与默认进程标识不同的 Windows 标识运行辅助进程。 默认情况下,该特性设置为 Machine,并且进程以 ASPNET 用户帐户运行,该帐户是在安装 ASP.NET 时自动创建的。 ASPNET 帐户的密码是在安装时通过加密生成的。 如果在该特性和 password 特性中存在有效的凭据,则将使用给定的帐户运行该进程。 userName 的另一个值是 System,密码为 AutoGenerate,该值以管理帐户运行进程,并允许在该进程下运行的所有 ASP.NET 用户代码具有完全的管理权限。 有关在作为域控制器的服务器上使用 ASP.NET 的信息,请参见本主题后面的“备注”。

Note
此特性和 password 特性以明文形式存储在配置文件中。 虽然 Microsoft Internet 信息服务 (IIS) 不传输 .config 文件来响应用户代理请求,但是可以通过其他途径读取配置文件。 例如,在服务器的域上具有适当凭据的已经过身份验证的用户可以读取配置文件。 出于安全考虑,processModel 节支持在注册表中存储加密的 userName 和 password 特性。 凭据必须是 REG_BINARY 格式并由 Windows 2000 和 Windows XP 数据保护 API (DPAPI) 加密函数加密。 有关更多信息,请参见本文档后面的“在注册表中存储用户名和密码”。

默认值为 "machine"。

webGarden

在与 cpuMask 特性一起使用时控制 CPU 关联。 (多处理器 Web 服务器称作网络园)。

webGarden 特性可以为下列值之一。

 
Value 说明
True 指示 cpuMask 特性用于指定哪些 CPU 符合运行 ASP.NET 进程的条件。
False 指示由 Windows 操作系统安排 CPU 使用。 cpuMask 特性被忽略,并且只运行一个辅助进程。

默认值为 False。

子元素

无。

父元素

 

元素

说明

system.web

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

要查看英语原文,请勾选“英语”复选框。也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语
本文档已存档,并且将不进行维护。

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

 

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

配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置。 processModel 节只能在 Machine.config 文件中进行设置,它影响服务器上运行的所有 ASP.NET 应用程序。

警告

对 processModel 元素的更改将只有在辅助进程重新启动之后才生效,而不是像其他配置元素那样在更改设置之后立即生效。 有关更多信息,请参见本主题后面的“备注”。

 
复制
<processModel
enable="true|false"
timeout="hrs:mins:secs|Infinite"
idleTimeout="hrs:mins:secs|Infinite"
shutdownTimeout="hrs:mins:secs|Infinite"
requestLimit="num|Infinite"
requestQueueLimit="num|Infinite"
restartQueueLimit="num|Infinite"
memoryLimit="percent"
webGarden="true|false"
cpuMask="num"
userName="<username>"
password="<secure password>"
logLevel="All|None|Errors"
clientConnectedCheck="hrs:mins:secs|Infinite"
comAuthenticationLevel="Default|None|Connect|Call|
Pkt|PktIntegrity|PktPrivacy"
comImpersonationLevel="Default|Anonymous|Identify|
Impersonate|Delegate"
responseDeadlockInterval="hrs:mins:secs|Infinite"
responseRestartDeadlockInterval="hrs:mins:secs|Infinite"
autoConfig="true|false"
maxWorkerThreads="num"
maxIoThreads="num"
minWorkerThreads="num"
minIoThreads="num"
serverErrorMessageFile=""
pingFrequency="Infinite"
pingTimeout="Infinite"
maxAppDomains="2000"
/>

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

特性

 

特性

说明

autoConfig

指定是否自动配置下列设置,以便基于计算机配置实现最佳性能:

这些值按照位于 http://support.microsoft.com/?id=821268 上的知识库文章进行设置。

此特性不影响 .NET Framework 客户端应用程序,而只影响 ASP.NET 应用程序。

autoConfig 特性可以为下列值之一。

 
术语 定义
True 指示 ASP.NET 自动配置上述列表中的特性,以便基于计算机配置实现最佳性能。
False 指示 ASP.NET 应当使用为上述列表中的特性显式定义的值。

除非以前已经有一个现有配置,否则 Machine.config 文件中的默认值为 True。

clientConnectedCheck

指定在 ASP.NET 检查以确定客户端是否已连接前在队列中保留的请求的长度。

默认值为 "00:00:05"(5 秒)。

comAuthenticationLevel

指定 DCOM 安全的身份验证级别。

comAuthenticationLevel 特性可以为下列值之一。

 
Value 说明
Call 指定在每一远程过程调用的开始当服务器接收请求时 DCOM 验证客户端的凭据。
Connect 指定只有在客户端与服务器建立连接时 DCOM 才验证客户端的凭据。
Default 指定 DCOM 使用其标准安全协商算法确定身份验证级别。
None 不指定身份验证。
Pkt 指定 DCOM 验证所接收的所有数据是否都来自预期的客户端。 数据报传输始终使用 Pkt 身份验证。
PktIntegrity 指定 DCOM 验证和确认未修改在客户端和服务器之间传输的任何数据。
PktPrivacy 指定 DCOM 验证所有以前的级别并加密每一远程过程调用的参数值。

默认值为 Connect。

comImpersonationLevel

指定 COM 安全的身份验证级别。

comImpersonationLevel 特性可以为下列值之一。

 
Value 说明
Anonymous 指定客户端对于服务器而言是匿名的。 服务器可以模拟客户端,但是模拟标记不会包含任何信息。 在 .NET Framework 1.1 版中,不支持 Anonymous。
Default 指定 DCOM 使用其标准安全协商算法确定模拟级别。
Delegate 指定服务器进程在代表客户端来执行时可以模拟客户端的安全上下文。 服务器进程还可以在代表客户端时使用掩饰向其他服务器发出传出呼叫。 服务器可以使用其他计算机上的客户端的安全上下文,以作为客户端来获得对本地和远程资源的访问权限。 当在该级别模拟时,可以让模拟标记穿过任意数目的计算机边界。
Identify 指定服务器可以包含客户端的标识。 服务器可以模拟客户端以进行访问控制列表 (ACL) 检查,但是无法作为客户端访问系统对象。
Impersonate 指定服务器进程在代表客户端来执行时可以模拟客户端的安全上下文。 此级别的模拟可用来访问本地资源,如文件。 当在该级别模拟时,模拟标记可以只横穿一个计算机边界。

默认值为 Impersonate。

cpuMask

指定在多处理器服务器上哪些处理器 (CPU) 可以运行 ASP.NET 进程。 该值指定一个位模式,它指示满足运行 ASP.NET 线程的条件的 CPU。 例如,cpuMask 十六进制值 0x0d 代表位模式 1101。 在具有四个 CPU 的计算机上,这表明可以在 CPU 0、2,和 3,而不是 CPU 1 上安排 ASP.NET 进程。 ASP.NET 为满足条件的每个 CPU 启动一个辅助进程。 如果 webGarden 特性为 true,则该特性会将辅助进程限制为满足条件的 CPU 的数目。 最大辅助进程数目等于 CPU 的数目。 如果 webGarden 为 false,则该特性被忽略,并且将只有一个辅助进程运行。 这是默认行为。

默认值为 "0xffffffff"。

enable

指定是否启用进程模型。

enable 特性可以为下列值之一。

 
Value 说明
True 指示进程模型已启用。
False 指示进程模型未启用。

默认值为 true。

idleTimeout

以字符串格式 (hr:min:sec) 指定不活动期限,在该不活动期限后,ASP.NET 将自动结束辅助进程。

默认值为 Infinite。

logLevel

指定要记录到事件日志的事件类型。

logLevel 特性可以为下列值之一。

 
Value 说明
All 指定记录所有进程事件。
Errors 指定只记录意外关闭、内存限制关闭和死锁关闭。
None 指定不记录任何事件。

默认值为 Errors。

maxAppDomains

指定一个进程中允许的应用程序域的最大数目。

该特性可以小于或等于 2000。

默认值为 2000。

maxIoThreads

按 CPU 配置用于进程的 I/O 线程的最大数目。 例如,如果此值在单处理器服务器上为 25,则 ASP.NET 将使用运行时 API 将进程限制设置为 25。 在双处理器服务器上,限制设置为 50。 此特性的值必须大于等于 httpRuntime 配置选项中的 minFreeThread 特性设置。

有关线程处理类型的信息,请参见 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(线程处理说明)。

该特性的范围是从 5 到 100。

默认值为 20。

maxWorkerThreads

按 CPU 配置用于进程的辅助线程的最大数目。 例如,如果此值在单处理器服务器上为 25,则 ASP.NET 将使用运行时 API 将进程限制设置为 25。 在双处理器服务器上,限制设置为 50。 此特性的值必须大于等于 httpRuntime 配置选项中的 minFreeThread 特性设置。

有关线程处理类型的信息,请参见 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(线程处理说明)。

该特性的范围是从 5 到 100。

默认值为 20。

memoryLimit

指定在 ASP.NET 启动新进程和重新分配现有请求前,辅助进程可以使用的最大内存大小。该属性的单位为相对于总系统内存的百分比。

默认值为 60。

minIoThreads

按 CPU 配置用于进程的 I/O 线程的最小数目。 另外,请参见 maxIoThreads。

有关线程处理类型的信息,请参见 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(线程处理说明)。

默认值为 1。

minWorkerThreads

按 CPU 配置用于进程的辅助线程的最小数目。 另外,请参见 maxWorkerThreads。

有关线程处理类型的信息,请参见 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(线程处理说明)。

默认值为 1。

password

如果它存在并且与 userName 一起使用,将导致辅助进程使用配置的 Microsoft Windows 标识运行。 请参见 userName,获取有关无需密码的特殊名称 System 和 Machine 的更多信息,以及有关在注册表中存储加密的辅助进程凭据的信息。

Note
在配置文件中存储凭据会有安全风险。 有关更多信息,请参见本文档后面的“在注册表中存储用户名和密码”。

默认值为 AutoGenerate。

pingFrequency

以标准进程模型格式 (hr:min:sec) 指定时间间隔,该时间间隔是 ISAPI 扩展对辅助进程执行 ping 命令来确定其是否正在运行所采用的时间间隔。 如果在 pingTimeout 时间间隔内该辅助进程没有运行,将重新启动该辅助进程。

默认值为 Infinite。

pingTimeout

以标准进程模型格式 (hr:min:sec) 指定时间间隔,在该时间间隔后,将重新启动没有响应的响应辅助进程。 ISAPI 扩展每隔 pingFrequency 间隔会对辅助进程使用 ping 命令。 如果辅助进程在 pingTimeout 间隔内没有响应,则重新启动该进程。

默认值为 Infinite。

requestLimit

指定 ASP.NET 自动启动新辅助进程以代替当前辅助进程前允许的请求的数目。

默认值为 Infinite。

requestQueueLimit

指定队列中允许的请求数,超过此数目后,ASP.NET 将开始向新请求返回“503 - 服务器太忙”消息。

默认值为 5000。

responseDeadlockInterval

以标准进程模型格式 (hr:min:sec) 指定时间间隔,在该时间间隔后,如果满足以下条件,进程将重新启动:

  • 有排队的请求。

  • 在此时间间隔期间没有响应。

默认值为 "0:03:00"(3 分钟)。

responseRestartDeadlockInterval

ASP.NET 不再使用该特性,提供该特性只是为了兼容。 如果该属性出现在配置文件中,也不会导致配置错误。 现在,当出现死锁情况时,所有循环都将由 responseDeadlockInterval 特性控制。

默认值为 "0:03:00"(3 分钟)。

restartQueueLimit

指定在出现非标准终止后,等待辅助进程重新启动时排入队列的请求的最大数目。 如果是完全关闭或标准的重新启动,此设置将不适用。

默认值为 10。

serverErrorMessageFile

指定在发生致命错误时用来代替默认的“服务器不可用”消息的文件的内容。 该文件位置是相对于 Machine.config 文件的位置,或者可以是绝对路径。 如果该特性不存在,则使用默认的“服务器不可用”消息。

shutdownTimeout

指定辅助进程关闭所允许的分钟数。 在超时过期后,ASP.NET 关闭辅助进程。 该时间以 hr:min:sec 字符串格式表示。

默认值为 "0:00:05"(5 秒)。

timeout

指定分钟数,超过该分钟数 ASP.NET 将启动新的辅助进程以替代当前辅助进程。

默认值为 Infinite。

userName

指定 ASP.NET 将使用与默认进程标识不同的 Windows 标识运行辅助进程。 默认情况下,该特性设置为 Machine,并且进程以 ASPNET 用户帐户运行,该帐户是在安装 ASP.NET 时自动创建的。 ASPNET 帐户的密码是在安装时通过加密生成的。 如果在该特性和 password 特性中存在有效的凭据,则将使用给定的帐户运行该进程。 userName 的另一个值是 System,密码为 AutoGenerate,该值以管理帐户运行进程,并允许在该进程下运行的所有 ASP.NET 用户代码具有完全的管理权限。 有关在作为域控制器的服务器上使用 ASP.NET 的信息,请参见本主题后面的“备注”。

Note
此特性和 password 特性以明文形式存储在配置文件中。 虽然 Microsoft Internet 信息服务 (IIS) 不传输 .config 文件来响应用户代理请求,但是可以通过其他途径读取配置文件。 例如,在服务器的域上具有适当凭据的已经过身份验证的用户可以读取配置文件。 出于安全考虑,processModel 节支持在注册表中存储加密的 userName 和 password 特性。 凭据必须是 REG_BINARY 格式并由 Windows 2000 和 Windows XP 数据保护 API (DPAPI) 加密函数加密。 有关更多信息,请参见本文档后面的“在注册表中存储用户名和密码”。

默认值为 "machine"。

webGarden

在与 cpuMask 特性一起使用时控制 CPU 关联。 (多处理器 Web 服务器称作网络园)。

webGarden 特性可以为下列值之一。

 
Value 说明
True 指示 cpuMask 特性用于指定哪些 CPU 符合运行 ASP.NET 进程的条件。
False 指示由 Windows 操作系统安排 CPU 使用。 cpuMask 特性被忽略,并且只运行一个辅助进程。

默认值为 False。

子元素

无。

父元素

 

元素

说明

system.web

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

  托管代码配置系统不读取 processModel 配置设置。 这些 processModel 配置设置而是由 aspnet_isapi.dll 非托管 DLL 直接读取的。 在重新启动 IIS 辅助进程之前将不应用对此节的更改。

  当 ASP.NET 运行于本机模式的 IIS 版本 6 下时,将使用 IIS 6 进程模型,并忽略 processModel 节中的某些特性。 但是,以下特性仍是适用的:

  autoConfig

  maxIoThreads

  maxWorkerThreads

  minIoThreads

  minWorkerThreads

  requestQueueLimit

  responseDeadlockInterval

  关于 IIS 7 进程模型的信息,请参见 “应用程序池的进程模型配置”

  若要在 IIS 6.0 中配置进程标识、循环或其他进程模型值,请使用 Internet 服务管理器用户界面来配置应用程序的 IIS 辅助进程。

  注意:配置 IIS 6 以在 IIS 5.0 隔离模式下运行 ASP.NET 时,无法使用 ASP.NET 2.0。

  时间值采用“hours:minutes:seconds”形式。 如果只给出一个数字而没有冒号,该值将被视为分钟;也就是说 timeout="4" 等于 timeout="00:04:00"。

  如果 ASP.NET 应用程序导致 ASP.NET 辅助进程(在 Windows 2000 和 Windows XP Professional 上为 aspnet_wp.exe,在 Windows Server 2003 上为 w3wp.exe)重新启动,同时出现错误消息,指出重新启动可能是由于死锁状态而造成的,则应该增大 responseDeadlockInterval 特性。

域控制器和本地 ASPNET 帐户

  如果您将 .NET Framework 1.1 版本安装在一个域控制器上,安装过程将不会创建本地 ASPNET 帐户。 而 ASP.NET 应用程序以其他标识运行,如下所示:

  • 在运行 Windows 2000 Server 的域控制器上,ASP.NET 应用程序以 IWAM_machinename 标识运行。

  • 在运行 Windows Server 2003 的域控制器上,ASP.NET 应用程序以 NETWORK SERVICE 标识运行(与 IIS 隔离模式无关)。

在有些情况下,在域控制器上运行 ASP.NET 要求您采取额外的步骤才能使安装正常进行。 有关在域控制器上运行 .NET Framework 1.1 版的更多信息,请转到知识库 (KB) 搜索页面并参见文章 Q824308“IWAM Account is Not Granted the Impersonate Privilege for ASP.NET 1.1 on Windows 2000 Domain Controller with SP4”(在安装了 SP4 的 Windows 2000 域控制器上没有授予 IWAM 帐户用于 ASP.NET 1.1 的模拟特权)。有关在域控制器上运行 .NET Framework 1.0 版的更多信息,请转到知识库 (KB) 搜索页面并参见文章 Q315158“ASP.NET Does Not Work with the Default ASPNET Account on a Domain Controller”(ASP.NET 不与域控制器上的默认 ASPNET 帐户一起工作)。

在注册表中存储用户名和密码

要加密用户名和密码并将它们存储在注册表中,请按照下面的示例所示设置 userName 和 password 特性。

 
复制
   userName="registry:HKLM\Software\AspNetProcess,Name"
password="registry:HKLM\Software\AspNetProcess,Pwd"

字符串中位于关键字 registry 之后和逗号 (,) 之前的部分表示 ASP.NET 打开的注册表项的名称。 逗号 (,) 之后的部分包含一个字符串值名称,ASP.NET 从此名称中读取凭据。 必须有逗号 (,) 并且凭据必须存储在 HKLM 配置单元中。 如果配置格式不正确,则 ASP.NET 不会启动辅助进程,然后将显示造成当前帐户创建失败的代码路径。

凭据必须为 REG_BINARY 格式,并且包含 Windows API 函数 CryptProtectData 调用的输出。 您可以使用 Aspnet_setreg.exe 创建加密的凭据并将它们存储在注册表中。 Aspnet_setreg.exe 使用 CryptProtectData 来完成加密。 若要下载 Aspnet_setreg.exe 以及 Microsoft Visual C++ 源代码和文档,请转到 ASP.NET 网站并搜索“aspnet_setreg”。

应该对存储加密凭据的密钥的访问权限进行配置,以便仅向 Administrators 和 SYSTEM 提供访问权。 由于密钥会被作为 SYSTEM 运行的 ASP.NET 进程读取,因此请设置以下权限:

 
复制
Administrators:F
SYSTEM:F
CREATOR OWNER:F
ProcessAccount: R

这有助于以下列方法保护数据:

  • ACL 权限要求访问数据的身份是 Administrator。

  • 攻击者必须在服务器上运行代码 (CryptUnprotectData) 才能恢复帐户的凭据。

默认配置

  下面的默认 processModel 元素不是在 Machine.config 文件或根 Web.config 文件中显式配置的。 而是由应用程序返回的默认配置。

<processModel
enable="true"
timeout="Infinite"
idleTimeout="Infinite"
shutdownTimeout="00:00:05"
requestLimit="Infinite"
requestQueueLimit="5000"
restartQueueLimit="10"
memoryLimit="60"
webGarden="false"
cpuMask="0xffffffff"
userName="machine"
password="AutoGenerate"
logLevel="Errors"
clientConnectedCheck="00:00:05"
comAuthenticationLevel="Connect"
comImpersonationLevel="Impersonate"
responseDeadlockInterval="00:03:00"
responseRestartDeadlockInterval="00:03:00"
autoConfig="true"
maxWorkerThreads="20"
maxIoThreads="20"
minWorkerThreads="1"
minIoThreads="1"
serverErrorMessageFile=""
pingFrequency="Infinite"
pingTimeout="Infinite"
asyncOption="20"
maxAppDomains="2000"
/>  

  下面的默认 processModel 元素是在 .NET Framework 1.0 和 1.1 版的 Machine.config 文件中配置的。

<processModel
enable="true"
timeout="Infinite"
idleTimeout="Infinite"
shutdownTimeout="0:00:05"
requestLimit="Infinite"
requestQueueLimit="5000"
restartQueueLimit="10"
memoryLimit="60"
webGarden="false"
cpuMask="0xffffffff"
userName="machine"
password="AutoGenerate"
logLevel="Errors"
clientConnectedCheck="0:00:05"
comAuthenticationLevel="Connect"
comImpersonationLevel="Impersonate"
responseRestartDeadlockInterval="00:09:00"
responseDeadlockInterval="00:03:00"
<!-- In the .NET Framework version 1.1, the next two attributes are
set to 20. -->
maxWorkerThreads="25"
maxIoThreads="25"
/>

配置节处理程序

ProcessModelSection

配置成员

ProcessModel

可配置的位置

Machine.config

要求

Microsoft Internet 信息服务 (IIS) 版本 5.0、5.1 或 6.0

.NET Framework 版本 1.0、1.1 或 2.0

Microsoft Visual Studio 2003 或 Visual Studio 2005

 

  参考地址:https://msdn.microsoft.com/zh-cn/library/7w2sway1.aspx

IIS 之 Web 服务器上的 ASP.NET 进程模型设置的更多相关文章

  1. IIS 7 Web服务器上部署ASP.NET网站(转)

    IIS 7 Web服务器上部署ASP.NET网站小记 摘自:http://swanmsg.blog.sohu.com/162111073.html 网上查找了很久关于iis7配置asp.net配置问题 ...

  2. 尚未在 Web 服务器上注册 ASP.NET 4.0” 的解决办法

    http://www.sowsoy.com/topics-537.html win7,vs2010创建.NetFramework 4框架下的Asp.Net空网站.系统提示 “尚未在 Web 服务器上注 ...

  3. 错误:为 Web 项目“XXX”配置的 URL“http://localhost/”的网站同时存在于本地 IIS Web 服务器和 IIS Express Web 服务器上。您需要使用 IIS 管理器在 IIS 中更改此网站的绑定。

    解决方法: 用记事本打开MVC网站的项目文件(*.csproj),滚动条拉到最下,找到这两个节点: <UseIIS>True</UseIIS> <AutoAssignPo ...

  4. processModel与ASP.NET进程模型

    配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置.其作用是配置IIS或IIS中的应用程序池(IIS7及以后版本)的安全性,性能,健壮性 ...

  5. win7下.NET 2.0未在web服务器上注册的问题(转)

    转自:http://blog.sina.com.cn/s/blog_6d15b547010192hx.html 电脑装了win7操作系统,装上vs2008后运行dotnetnuke项目后出现" ...

  6. error : Web 项目“RealEstate.Web”的 URL“http://localhost:20000”已配置为将 IIS 用作 Web 服务器,但是当前在 IIS Express W

    error  : Web 项目"RealEstate.Web"的 URL"http://localhost:20000"已配置为将 IIS 用作 Web 服务器 ...

  7. ASP.NET 4.0尚未在 Web 服务器上注册 解决方法

    使用VS2010创建web应用程序时出现如下提示ASP.NET 4.0尚未在 Web 服务器上注册.为了使网站正确运行,可能需要手动将 Web 服务器配置为使用 ASP.NET 4.0,按 F1 可了 ...

  8. ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上

    一.前言 大家都知道,在之前,我们Asp.net 的网站都只能部署在IIS上,并且IIS也只存在于Windows上,这样Asp.net开发的网站就难以做到跨平台.由于微软的各项技术的开源,所以微软自然 ...

  9. 在IIS7.5上添加.NET4.0程序的虚拟目录时提示ASP.NET 4.0尚未在 Web 服务器上注册

    使用VS2010创建web应用程序时出现如下提示: ASP.NET 4.0尚未在 Web 服务器上注册. 解决方法: 首先IIS应用程序池添加 net framework4.0版本. 接着找到C:\W ...

随机推荐

  1. wikioi 3130 CYD刷题(背包)

    题目描述 Description 下午,CYD要刷题了,已知CYD有N题可刷,但他只有M分钟的时间,而且他的智慧值为Q,也就是说他只能做出难度小于等于Q的题目.已知每题可得积分Ai,需花费时间Bi,难 ...

  2. Python学习笔记(四):字符串的学习

    总结的内容: 1.字符串常用的方法 2.Python字符串格式化 3.Python字符串转义字 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符 ...

  3. MAX II Device Compatibility with 5.0-V CMOS Devices

    http://www.altera.com/literature/hb/max2/max2_mii51009.pdf The open-drain pin never drives high, onl ...

  4. SpringMVC怎么获取前台传来的数组

    var tollerlist = new Array(); for(var k in objToller){ tollerlist.push(k); } $.ajax({ type:"pos ...

  5. [INSTALL_FAILED_OLDER_SDK]错误

    在写完Demo后,执行时发现控制台打印出这么一段话:[INSTALL_FAILED_OLDER_SDK]错误. 原因是由于:測试机或者我们所用的虚拟机的android版本号太低. defaultCon ...

  6. 常见 core dump 原因分析signal 11 - SIGSEGV

    signal 6 - SIGABRT free 多次 char *p = malloc(100); free(p); free(p); fclose 多次 // fclose 内部调用 free FI ...

  7. How to check Ubuntu version

    Below you can find some tips on how to check Ubuntu version you are currently running. The first pla ...

  8. 【Nginx】ngx_event_core_module模块

    ngx_event_core_module模块属于事件模块,它是其他事件类模块的基础.它主要完毕下面任务: 创建连接池 决定使用哪些事件驱动机制 初始化将要使用的事件模块 以下分析该模块的代码. ng ...

  9. 求好用的在线手册编写工具,能编写像bootstrap在线Doc那种的,想为OpenCenter写个在线手册

    原文地址:http://www.oschina.net/question/1014458_225711 各位OSCer的开源项目的在线说明文档都是用什么写的呢? 类似 http://v3.bootcs ...

  10. python笔记26-命令行传参sys.argv实际运用

    前言 平常我们在用别人写好的python包的时候,在cmd输入xx -h就能查看到帮助信息,输入xx -p 8080就能把参数传入程序里,看起来非常酷. 本篇就来讲下如何在python代码里加入命令行 ...