`

<processModel> 元素

阅读更多

<processModel> 元素

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

警告 警告 有关此元素的信息,请阅读“注释”部分。

配置结构的示例:

<configuration>
   <system.web>
      <processModel>

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

可选的属性

属性 选项 描述
clientConnectedCheck     指定在 ASP.NET 检查连接的客户端之前,请求在队列中存在多长时间。
comAuthenticationLevel     为 DCOM 安全指定身份验证级别。默认值为 Connect
    Default 指定 DCOM 使用其正常的安全协商算法来确定身份验证级别。
    None 指定不进行身份验证。
    Connect 指定仅当客户端建立与服务器的关系时,DCOM 才对客户端凭据进行验证。
    Call 指定在每个远程过程调用开始时服务器收到请求的时候,DCOM 对客户端凭据进行验证。
    Pkt 指定 DCOM 验证收到的所有数据是否均来自预期的客户端。数据报传输始终使用 Pkt 身份验证。
    PktIntegrity 指定 DCOM 验证在客户端和服务器之间传输的数据是否未被修改。
    PktPrivacy 指定 DCOM 验证所有先前的级别并加密每个远程过程调用的参数值。
comImpersonationLevel     指定 COM 安全的身份验证级别。
    Default 指定 DCOM 使用其正常的安全协商算法来确定模拟级别。
    Anonymous 指定客户端对服务器是匿名的。服务器可以模拟客户端,但模拟令牌不包含任何信息。在版本 1.1 中不支持 Anonymous
    Identify 指定服务器可以获取客户端的标识。服务器可以模拟客户端以进行访问控制列表 (ACL) 检查,但它不能作为客户端访问系统对象。
    Impersonate 指定服务器进程在代表客户端操作时可以模拟客户端的安全上下文。可以使用此级别的模拟来访问本地资源,如文件。在此级别进行模拟时,只能在一个计算机边界传递模拟令牌。
    Delegate 指定服务器进程在代表客户端操作时可以模拟客户端的安全上下文。在使用掩饰代表客户端操作时,服务器进程也可以对外调用其他的服务器。在其他计算机上,服务器可以作为客户使用客户端的安全上下文访问本地和远程资源。在此级别进行模拟时,可以在任意数量的计算机边界传递模拟令牌。
cpuMask     指定多处理器服务器上的哪些处理器可以运行 ASP.NET 进程。cpuMask 值指定一种位模式,它指示 CPU 可以运行 ASP.NET 线程。例如,cpuMask 十六进制值 0x0d 表示位模式 1101。在具有 4 个 CPU 的计算机上,它指示可以将 ASP.NET 进程安排在 CPU 0、2 和 3,但不能安排在 CPU 1 上。ASP.NET 为每个合格的 CPU 启动一个工作进程。如果将 webGarden 属性(参见下面)设置为 true,则 cpuMask 将工作进程限制为合格 CPU 的数量。(工作进程的最大允许数量等于 CPU 的数量。)默认情况下,启用所有的 CPU,并且 ASP.NET 为每个 CPU 启动一个进程。如果将 webGarden 设置为 false,则忽略 cpuMask 属性,并且只运行一个工作进程。
enable     指定是否启用进程模型。
    true 指示进程模型已启用。
    false 指示进程模型未启用。
idleTimeout     指定在 ASP.NET 自动结束工作进程之前,工作进程处于不活动状态的时间(采用时:分:秒字符串格式)。默认设置为 Infinite
logLevel     指定要记录到事件日志中的事件类型。
    All 指定记录所有的进程事件。
    None 指定不记录任何事件。
    Errors 指定只记录意外关闭、内存限制关闭和死锁关闭。Errors 为默认值。
maxWorkerThreads 5 - 100 配置每个 CPU 上的进程使用的工作线程的最大数量。例如,如果在单处理器服务器上该值为 25,则 ASP.NET 使用运行时 API 将进程限制设置为 25 个。在双处理器服务器上,将该限制设置为 50。默认值为 20。maxWorkerThreads 的值必须大于或等于 <httpRuntime> 配置节中的 minFreeThread 属性设置。
maxIoThreads 5 - 100 配置每个 CPU 上的进程使用的 I/O 线程的最大数量。例如,如果在单处理器服务器上该值为 25,则 ASP.NET 使用运行时 API 将进程限制设置为 25 个。在双处理器服务器上,将该限制设置为 50。默认值为 20。maxIoThreads 的值必须大于或等于 <httpRuntime> 配置节中的 minFreeThread 属性设置。
memoryLimit     指定在 ASP.NET 启动新的进程和重新分配现有请求之前,允许工作进程占用的最大内存大小(总系统内存的百分比)。默认值是 60%。
password     如果给出(与 userName 结合使用),则此属性导致工作进程以配置的 Windows 标识运行。默认值为 AutoGenerate。有关特殊名称 SystemMachine(它们不需要密码)的详细信息以及在注册表中存储加密工作进程凭据的信息,请参阅 userName
pingFrequency     使用标准进程模型格式(时:分:秒)指定时间间隔,ISAPI 扩展按此间隔 ping 工作进程以查看它是否正在运行。如果工作进程在 pingTimeout 间隔内没有运行,则重新启动该工作进程。默认值为 30 秒钟。
pingTimeout     使用标准进程模型格式(时:分:秒)指定重新启动未响应工作进程之前的时间间隔。ISAPI 扩展每隔 pingFrequency 时间间隔 ping 一次工作进程。如果工作进程在 pingTimeout 间隔内没有响应,则重新启动该进程。默认值为 5 秒钟。
requestLimit     指定在 ASP.NET 自动启动新工作进程以替换当前进程之前允许的请求数。默认设置为 Infinite
requestQueueLimit     指定在 ASP.NET 开始给新请求返回“503 - 服务器太忙”错误之前队列中允许的请求数。默认值是 5000。
responseDeadlockInterval     使用标准进程模型格式(时:分:秒)指定重新启动工作进程之前的时间间隔(如果满足以下条件):
  • 具有排队的请求。
  • 在此间隔内没有响应。

默认值为 3 分钟。

responseRestartDeadlockInterval     ASP.NET 不再使用此属性,并且仅出于向后兼容性的需要提供此属性。如果它已在配置文件中存在,则它不会引起配置错误。现在,出现死锁情况下的所有回收是由 responseDeadlockInterval 属性控制的。
serverErrorMessageFile     如果给出,则它指定要使用的文件内容,而不是出现致命错误时给出的默认“服务器不可用”消息。文件位置是与 Machine.config 相对的,也可以是绝对文件路径。如果没有给出该属性,则使用默认的“服务器不可用”消息。
shutdownTimeout     指定工作进程自行关闭前允许的分钟数。当超时到期时,ASP.NET 就会关闭工作进程。时间用时:分:秒字符串格式表示。默认值为 5 秒钟或 0:00:05。
timeout     指定在 ASP.NET 启动新工作进程以替换当前进程之前的时间(以分钟为单位)。默认设置为 Infinite
userName     如果给出,则 userName 属性使用不同于默认进程标识的 Windows 标识运行 ASP.NET 工作进程。默认情况下,将 userName 设置为特殊值 Machine,并且进程运行使用的用户帐户为 ASPNET(在安装 ASP.NET 时自动创建的)。ASPNET 帐户的密码是在安装时以加密形式生成的。如果在 userNamepassword 属性中给出了有效的凭据,则进程使用给定的帐户运行。userName 的另外一个特殊值为 System,密码为 AutoGenerate(它使用管理员帐户来运行进程,并且允许在此进程下运行的所有 ASP.NET 用户代码具有完全管理权限)。有关在用作域控制器的服务器上使用 ASP.NET 的信息,请参阅下面的“注释”部分。

userNamepassword 以明文形式存储在配置文件中。尽管 IIS 将不会为响应用户代理请求而传输 .config 文件,但是可通过其他方法读取配置文件,例如,通过对包含该服务器的域具有正确凭据的经过身份验证的用户访问。为了维护安全性,processModel 节支持在注册表中存储加密的 userNamepassword 属性。凭据必须采用由 Windows 2000 和 Windows XP 数据保护 API (DPAPI) 加密功能加密的 REG_BINARY 格式。详细信息,请参阅下面的“注释”和“示例”部分。

webGarden     在与 cpuMask 属性结合使用时控制 CPU 关系。(多处理器 Web 服务器称为“Web 园”。)
    true 指示 cpuMask 属性用于指定哪些 CPU 适合运行 ASP.NET 进程。
    false 指示 CPU 的使用是由 Windows 操作系统调度的。忽略 cpuMask 属性并且只运行一个工作进程。默认值是 false

注释

托管代码配置系统并不读取 <processModel> 配置设置。而是由非托管 DLL aspnet_isapi.dll 直接读取。重新启动 IIS 后,本节的更改才会生效。

如果在域控制器上安装 ASP.NET,必须采取特殊的步骤,否则安装无法正常进行。详细信息,请参阅位于 http://support.microsoft.com 的 Microsoft 知识库中的文章 CHS315158“ASP.NET 在域控制器上不能使用默认 ASPNET 帐户”。

当 ASP.NET 在 IIS 版本 6 本机模式下运行时,使用 IIS 6 进程模型并且忽略 <processModel> 节中的设置。要配置进程标识、回收或其他进程模型值,请使用 Internet 服务管理器用户界面为应用程序配置 IIS 工作进程。

时间值的格式为“时:分:秒”。如果只给出单个数字而没有冒号,则假定该值为分钟数;因此 timeout="4" 等同于 timeout="00:04:00"。

如果 ASP.NET 应用程序导致 ASP.NET 工作进程(Windows 2000 和 Windows XP Professional 上的 Aspnet_wp.exe 以及 Windows Server 2003 上的 W3wp.exe)重新启动,并给出一条错误消息,指示重新启动是由于怀疑的死锁状态造成的,则应该增加 responseDeadlockInterval 设置。

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

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

要加密用户名和密码并将它们存储在注册表中,请按如下方式设置 userNamepassword

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 调用的输出结果。您可以用 ASP.NET设置注册表控制台应用程序 (Aspnet_setreg.exe) 创建加密凭据并将其存储在注册表中,该应用程序使用 CryptProtectData 完成加密。要下载 Aspnet_setreg.exe 以及 Visual C++ 源代码和帮助,请访问网站 www.asp.net 并搜索“aspnet_setreg”。

您应该对存储加密凭据的注册表项配置访问权限,以便只对 Administrators 和 SYSTEM 提供访问。因为该注册表项将由作为 SYSTEM 运行的 ASP.NET 进程读取,您应该设置下列权限:

Administrators:F

SYSTEM:F

CREATOR OWNER:F

ProcessAccount:R

这将提供两道防线来保护数据:

  • ACL 权限要求访问数据的标识为 Administrator。
  • 攻击者必须在服务器上运行代码 (CryptUnprotectData) 以便恢复帐户的凭据。

示例

以下示例指定几个 <processModel> 配置设置。

<configuration>
   <system.web>
      <processModel 
         enable="true"
         timeout="15" 
         idleTimeout="25"
         shutdownTimeout="5"
         requestLimit="1000"
         requestQueueLimit="500"
         responseDeadlockInterval="00:03:00"              
         responseRestartDeadlockInterval="Infinite"
         memoryLimit="20"
         webGarden="true"
         maxWorkerThreads="25"
         maxIoThreads="25"/>
   </system.web>
</configuration>

以下示例指定将加密的用户名和密码存储在注册表用户定义的项 AspNetProcess 下面。

<configuration>
   <system.web>
      <processModel> 
         userName="registry:HKLM\Software\AspNetProcess,Name"
         password="registry:HKLM\Software\AspNetProcess,Pwd"
      </processModel>
   </system.web>
</configuration>

要求

  • 包含在:<system.web>
  • Web 平台:IIS 5.0、IIS 5.1、IIS 6.0
  • 配置文件:Machine.config、Web.config
  • 配置节处理程序:System.Web.Configuration.ProcessModelConfigurationHandler

http://doc.51windows.net/iismmc/?url=/iismmc/htm/aaconprocessmodelelement.htm

分享到:
评论

相关推荐

    Process_model_NLU:创建基于NLU的无监督程序以识别流程元素

    Process_model_NLU 创建基于NLU的无监督程序以识别流程元素

    论文研究-支持快速构建领域应用系统的业务过程模型研究.pdf

    针对基于业务基础平台快速构建领域应用系统,建立了业务过程模型BPM4DBL(business process model for dynamic business logic)。模型中包括活动和规则元素,可以描述领域应用中宏观实体和微观知识结构;给出了模型中...

    PLS概念模型及其应用 (2006年)

    针对此问题,提出了一套通用的点线面一体化业务分析概念模型,即PLS模型( Point-Line-Surface Conceptual Model),定义了用PLS模型分析系统所涉及的各种元素,并分析了PLS模型元素和EPC( Event-driven Process Chains)...

    JavaScript完全自学宝典 源代码

    1.6.html 使用“&lt;marquee&gt;”标记,实现的滚动字幕效果。 1.7.html 使用JavaScript实现简单的字幕滚动。 1.8.html 使用JavaScript实现字幕连续滚动。 1.9.html 使用JavaScript实现的简单数字时钟。 ...

    jBPM5 用户指南-中文

    6.1 Business Process Model and Notation(BPMN)2.0 Specification业务流程建模和符号2.0规范 49 6.2 例子 53 6.3 支持的元素/属性 54 第七章 核心引擎:持久化和事务 60 7.1 运行时状态 60 7.1.1 二进制持久化 60...

    JBPM5 用户指南

    6.1 Business Process Model and Notation(BPMN)2.0 Specification业务流程建模和符号2.0规范 43 6.2 例子 47 6.3 支持的元素/属性 48 第七章 核心引擎:持久化和事务 54 7.1 运行时状态 54 7.1.1 二进制持久化 54...

    JBPM5权威指南

    6.1 Business Process Model and Notation(BPMN)2.0 Specification业务流程建模和符号2.0规范 43 6.2 例子 47 6.3 支持的元素/属性 48 第七章 核心引擎:持久化和事务 54 7.1 运行时状态 54 7.1.1 二进制持久化 54...

    Excel2RpyScript:Excel文件转Rpy脚本

    |-- render 将model中的元素与进程控制渲染成Rpy脚本文件 |-model |-- element Rpy游戏的基本元素 |-- process Rpy游戏的进程控制 |--tools 工具类 |--app.py 程序入口 打包程序 工具: pyinstaller CMD: ...

    Java面向对象编程思想

    第一种方法被称为面向过程的模型(process-oriented model ),用它编写的程序都具有线性执行的特点。面向过程的模型可认为是代码作用于数据,像C这样的过程式语言采用这个模型是相当成功的。第二种方式,也就是面向...

    python-bpmn-engine:在Python流程中解析和执行Camunda BPMN模型

    一个用于在单个流程中解析和执行BPMN模型的python模块到目前为止支持的元素: 开始/结束事件任务(手动,用户,服务)-暂时执行虚拟网关(专有,并行) 有条件的顺序流BPMN模型示例: 用法示例: import asynciofrom...

    Maven权威指南 很精典的学习教程,比ANT更好用

    简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories)...

    C#浏览器编程,学习使用

    List&lt;int&gt; cishu = new List&lt;int&gt;(); //储存寻找关键字符的位置 int i = 0; //记录列表cishu的下标 } } //***********************************************// // // // 启动程序运行时 // // // //********...

    Struts in Action中文版

    2.4.2. Model 2的出现....................................................................................................47 2.4.3. 应用层—视图之间的去耦合................................................

    struts in Action

    2.4.2. Model 2 的出现....................................................................................................47 2.4.3. 应用层—视图之间的去耦合................................................

    WorkFlow Specify

    7. 回退(Process Returns) .............................................................................................6 8. 取回(Process Rollback) ....................................................

Global site tag (gtag.js) - Google Analytics