当您在运行 Windows Server 2003 的计算机上安装 ASP.NET 时,有两种进程模式供您选择。默认状况下,ASP.NET 使用 IIS 6.0 工作进程隔离模式。这种模式允许您配置应用程序池、回收工作进程、启用 Web 园功能、设置空闲超时和处理器关系,以及使用多种应用程序运行状况维护功能。在运行 Windows Server 2003 家族成员的计算机上,ASP.NET 应用程序应该使用工作进程隔离模式,除非遇到特定的兼容性问题。
但是请注意,当您的应用程序以工作进程隔离模式运行时,在计算机范围内的 Machine.config 文件中所创建的任何 <processModel> 元素的配置设置都将被忽略,下列三项设置除外:
- maxWorkerThreads
- maxIoThreads
- ResponseDeadlockInterval
<processModel> 元素配置了 IIS Web 服务器上的 ASP.NET 进程模式设置。<processModel> 部分只能在 Machine.config 文件内设置,并且它会影响所有在服务器上运行的 ASP.NET 应用程序。
使用 IIS 管理器配置 <processModel> 元素
要点 只有在工作进程隔离模式下运行时才能使用这些 IIS 6.0 功能。
IIS 6.0 工作进程隔离模式中的 timeout 等同设置
timeout 属性指定了 ASP.NET 启动新的工作进程来取代当前工作进程所需要的时间(以分钟为单位)。默认设置为“无限”。Recycle worker processes 项设置为 120 分钟(如下所示),并且默认情况下启用该项。
要点 您必须是本地计算机上 Administrators 组的成员或者您必须被授予了相应的权限才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"。
使用 IIS 管理器配置 ASP.NET 属性 timeout
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击应用程序池,然后单击“属性”。
- 在“回收”选项卡上,选中“回收工作进程(分钟)”复选框。
- 单击向上或向下箭头,设置希望经过多少分钟后回收工作进程。
- 单击“确定”。
IIS 6.0 工作进程隔离模式中的 idleTimeout 等同设置
IIS 6.0 中的工作进程或应用程序池可以在保持指定的空闲时间后关闭。Shutdown worker process 项设置为 20 分钟,并且默认状况下启用该项。
使用 IIS 管理器配置 ASP.NET 属性 idleTimeout
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。
- 单击“性能”选项卡,然后选中“空闲超时”下的“在空闲此段时间后关闭工作进程”复选框。
- 在“分钟”框中,键入希望在空闲(不处理请求)多少分钟后关闭空闲工作进程的数值。
- 单击“确定”。
IIS 6.0 工作进程隔离模式中的 shutdownTimeout 等同设置方法
shutdownTimeout 属性指定了工作进程完全关闭自身的时间值。时间用 hr:min:sec(小时:分钟:秒)字符串格式表示。工作进程的 Shutdown time limit 项设置为 90 秒,如下所示。
使用 IIS 管理器配置 ASP.NET 属性 shutdownTimeout
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。
- 单击“运行状况”选项卡,在“关闭时间限制”下的“工作进程必须在下列时间内关闭”旁边的“秒”框内键入期望的秒数。
- 单击“确定”。
IIS 6.0 工作进程隔离模式中的 requestLimit 等同设置
IIS 6.0 中的工作进程或应用程序池可以设置为在特定次数的请求之后回收。默认情况下,未启用该功能。
使用 IIS 管理器配置 ASP.NET 属性 requestLimit
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。
- 选中“回收工作进程(请求数目)”并键入回收工作进程之前所允许的最大虚拟内存值。
- 单击“确定”。
IIS 6.0 工作进程隔离模式中的 requestQueueLimit 等同设置
requestQueueLimit 属性指定了允许的最大请求次数,等待工作进程在异常中断后启动时,这些请求会排列在 Internet 服务器 API (ISAPI) 中。请注意,此设置不能在完全关闭或正常回收的情况下应用。IIS 6.0 中的队列限制在内核中设置,默认情况下,设置为 1000。
使用 IIS 管理器配置 ASP.NET 属性 requestQueueLimit
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”文件夹,右键单击该应用程序池,然后单击“属性”。
- 单击“性能”选项卡。
- 在“请求队列限制”部分中,选中“核心请求队列限制为”复选框,然后在“请求次数”框中单击向上和向下箭头,设置队列请求的最大数量。
- 单击“应用”,然后单击“确定”。
IIS 6.0 工作进程隔离模式中的 memoryLimit 等同设置
在 IIS 6.0 工作进程隔离模式下,工作进程可以基于虚拟内存和物理内存回收。与 Machine.config 文件不同,内存限制不是百分比值,而是以兆字节度量的有限值。
默认情况下,不启用基于物理或虚拟内存的回收,但是如果选中的话,则默认值对于虚拟内存为 500 兆字节 (MB),对于物理内存为 192 MB。
使用 IIS 管理器配置 ASP.NET 属性 memoryLimit
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。
- 在“回收”选项卡的“内存回收”部分,选中“最大虚拟内存(兆)”或“最大使用的内存(兆)”复选框。
- 单击向上或向下箭头,设置内存限制。
- 单击“确定”。
IIS 6.0 工作进程隔离模式中的 webGarden 和 cpuMask 等同设置
webGarden 属性控制 Web 园模式,或多个密切相关的工作进程的使用。cpuMask 控制了进程的数量和 Web 园工作的方式。
webGarden 可以使用多进程,这意味着所有进程将具有自己的、诸如应用程序状态、进程中的会话状态、缓存和静态数据等副本。
使用 Web 园时,请记住以下事项:
- 如果应用程序使用会话状态,则它必须选择进程外的提供程序(NT 服务 或 SQL)。
- 应用程序状态和应用程序静态数据是针对每个进程的,而不是针对每台计算机的。
- 缓存是针对每个进程的,而不是针对每台计算机的。
Web 园也可以在 IIS 6.0 工作进程隔离模式下设置,其方法是将每个应用程序池的最大工作进程数量从 1 增加到 n (根据需要)。
配置 ASP.NET 属性 webGarden 和 cpuMask
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。
- 单击“性能”选项卡,然后在“Web 园”下的“最大工作进程数”框中,键入想要指派给该应用程序池的工作进程数。
- 单击“确定”。
IIS 6.0 工作进程隔离模式中的 userName 和 password 等同设置
userName 属性允许工作进程采用不同于默认进程标识的 Windows 标识运行。默认状况下,此属性为空,进程以 IIS 标识运行。如果有效的证书出现在 userName 和 password 属性中,则进程以给定的帐户运行。如果出现,这些属性会使工作进程按配置的 Windows 标识运行。默认情况下属性值为空。在工作进程隔离模式下,默认以“网络服务”帐户运行。但是,可以将它们设置成如下的可配置帐户。
配置 ASP.NET 属性 userName 和 password
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”文件夹,右键单击要配置的应用程序池,然后单击“属性”。
- 单击“标识”选项卡。
- 单击“配置”。
- 单击“浏览”,然后在“输入要选择的对象名称”下,键入运行工作进程所使用的帐户名,然后单击“确定”。
- 在“密码”框中,键入与此帐户相关联的密码。如果没有与该帐户相关联的密码,请将“密码”框保持空白。
- 单击“确定”。
要点 当使用可配置的帐户为应用程序池配置工作进程标识时,必须将创建的帐户添加到 IIS_WPG 组中以便工作进程能够运行。
IIS 6.0 工作进程隔离模式中的 pingFrequency 和 pingTimeout 等同设置
pingFrequency 属性是标准进程模式格式 (hr:min:sec) 的时间间隔。默认值为 30 秒。pingTimeout 属性是标准进程模式格式 (hr:min:sec) 的时间间隔。默认值为 5 秒。
在 IIS 6.0 工作进程隔离模式中,默认情况下启用 ping。pingFrequency 的默认值为工作进程响应之后 30 秒。pingTimeout 的等同设置为
配置 ASP.NET 属性 pingFrequency 和 pingTimeout
- 在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。
- 单击“运行状况”选项卡,然后选中“启用 Ping”复选框。
- 在“每隔下列时间 Ping 工作线程”旁边的“秒”框中,键入两次 ping 之间的间隔秒数。
- 单击“确定”。