IIS 之 Web 服务器上的 ASP.NET 进程模型设置
配置 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 的更多信息,以及有关在注册表中存储加密的辅助进程凭据的信息。 ![]() 在配置文件中存储凭据会有安全风险。 有关更多信息,请参见本文档后面的“在注册表中存储用户名和密码”。
默认值为 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 的信息,请参见本主题后面的“备注”。 ![]() 此特性和 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 的更多信息,以及有关在注册表中存储加密的辅助进程凭据的信息。 ![]() 在配置文件中存储凭据会有安全风险。 有关更多信息,请参见本文档后面的“在注册表中存储用户名和密码”。
默认值为 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 的信息,请参见本主题后面的“备注”。 ![]() 此特性和 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 应用程序和控制应用程序行为方式的配置元素。 |
当 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"
/>
配置节处理程序 |
|
配置成员 |
|
可配置的位置 |
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 进程模型设置的更多相关文章
- IIS 7 Web服务器上部署ASP.NET网站(转)
IIS 7 Web服务器上部署ASP.NET网站小记 摘自:http://swanmsg.blog.sohu.com/162111073.html 网上查找了很久关于iis7配置asp.net配置问题 ...
- 尚未在 Web 服务器上注册 ASP.NET 4.0” 的解决办法
http://www.sowsoy.com/topics-537.html win7,vs2010创建.NetFramework 4框架下的Asp.Net空网站.系统提示 “尚未在 Web 服务器上注 ...
- 错误:为 Web 项目“XXX”配置的 URL“http://localhost/”的网站同时存在于本地 IIS Web 服务器和 IIS Express Web 服务器上。您需要使用 IIS 管理器在 IIS 中更改此网站的绑定。
解决方法: 用记事本打开MVC网站的项目文件(*.csproj),滚动条拉到最下,找到这两个节点: <UseIIS>True</UseIIS> <AutoAssignPo ...
- processModel与ASP.NET进程模型
配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置.其作用是配置IIS或IIS中的应用程序池(IIS7及以后版本)的安全性,性能,健壮性 ...
- win7下.NET 2.0未在web服务器上注册的问题(转)
转自:http://blog.sina.com.cn/s/blog_6d15b547010192hx.html 电脑装了win7操作系统,装上vs2008后运行dotnetnuke项目后出现" ...
- error : Web 项目“RealEstate.Web”的 URL“http://localhost:20000”已配置为将 IIS 用作 Web 服务器,但是当前在 IIS Express W
error : Web 项目"RealEstate.Web"的 URL"http://localhost:20000"已配置为将 IIS 用作 Web 服务器 ...
- ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
使用VS2010创建web应用程序时出现如下提示ASP.NET 4.0尚未在 Web 服务器上注册.为了使网站正确运行,可能需要手动将 Web 服务器配置为使用 ASP.NET 4.0,按 F1 可了 ...
- ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上
一.前言 大家都知道,在之前,我们Asp.net 的网站都只能部署在IIS上,并且IIS也只存在于Windows上,这样Asp.net开发的网站就难以做到跨平台.由于微软的各项技术的开源,所以微软自然 ...
- 在IIS7.5上添加.NET4.0程序的虚拟目录时提示ASP.NET 4.0尚未在 Web 服务器上注册
使用VS2010创建web应用程序时出现如下提示: ASP.NET 4.0尚未在 Web 服务器上注册. 解决方法: 首先IIS应用程序池添加 net framework4.0版本. 接着找到C:\W ...
随机推荐
- 【JavaScript代码实现一】数组去重
function arrayNoDupulate(array) { var hash = {}; var result = []; for(var i=0;i<array.length;i++) ...
- 图解PCB布线数字地、模拟地、电源地,单点接地抗干扰!
我们在进行pcb布线时总会面临一块板上有两种.三种地的情况,傻瓜式的做法当然是不管三七二十一,只要是地 就整块敷铜了.这种对于低速板或者对干扰不敏感的板子来讲还是没问题的,否则可能导致板子就没法正常工 ...
- Solaris10 下mysql5.5.12的安装
http://blog.csdn.net/ocean20/article/details/6417845 http://howtolamp.com/lamp/mysql/5.6/installing/
- .Net高级技术——结构体
结构体 结构体和类的区别:结构体是值类型,类是引用类型 结构体非常类似于类,但是值类型(拷贝传递),不能被继承 Int32.DateTime等都是结构体,从ValueType继承,值类型. 结构体测试 ...
- 用显微镜观察cpu芯片内部
1. 先找到一块Intel公司的奔三(Pentium III)Coppermine芯片,主频800MHZ,生产于2000年.(我查了一下,网上的报价现在是15~30元人民币/块.) 下面是这块CPU的 ...
- javascript中的2个感叹号的用法
!!是逻辑"非非",即是在逻辑"非"的基础上再"非"一次.通过!或!!可以将很多类型转换成bool类型,再做其它判断. 应用场景:判 ...
- copy and paste ,做到这样也很牛逼了
db笔记本 mysql资源 mysql5.1中文参考手册 mysql管理 基于linux使用mysql二进制包安装mysql5.5 mysql client命令行选项 mysqld服务器系统变量和状态 ...
- 安装openldap
在Mac OS X下安装 Mac OS X 下默认安装了openldap,我们只需要配置就可以. 1. 在/etc/openldap 下创建slapd.conf 文件(只需copy slapd.con ...
- Spring Boot中application.yml与bootstrap.yml的区别(转)
说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...
- C#常使用的正则表达式
/// <summary> /// 是否为手机号码 /// </summary> /// <param name="value"></pa ...