IIS 5.0 隔离模式ASP.NET 配置
IIS 5.0 隔离模式ASP.NET 配置传统的ASP程序进程是在IIS的进程空间中运行的。
ASP.NET自己的进程:aspnet_wp.exe。
ASP.NET 进程模型设置主要通过Machine.Config来配置,作用于整个服务器,是全局的。
可以指示ASP.NET在响应了一段时间、请求或内存使用率到一定程度后重新该进程。
也可以指示ASP.NET根据主板的CPU数来创建多个进程实例。这个进程是独立于IIS的。
Machine.Config文件:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config
Asp.net2.0的默认配置如下,(虽然没有显示配置)
Code
1<processModel
2 enable="true|false"
3 timeout="hrs:mins:secs|Infinite"
4 idleTimeout="hrs:mins:secs|Infinite"
5 shutdownTimeout="hrs:mins:secs|Infinite"
6 requestLimit="num|Infinite"
7 requestQueueLimit="num|Infinite"
8 restartQueueLimit="num|Infinite"
9 memoryLimit="percent"
10 webGarden="true|false"
11 cpuMask="num"
12 userName="username"
13 password="password"
14 logLevel="All|None|Errors"
15 clientConnectedCheck="hrs:mins:secs|Infinite"
16 comAuthenticationLevel="Default|None|Connect|Call|
17 Pkt|PktIntegrity|PktPrivacy"
18 comImpersonationLevel="Default|Anonymous|Identify|
19 Impersonate|Delegate"
20 responseDeadlockInterval="hrs:mins:secs|Infinite"
21 responseRestartDeadlockInterval="hrs:mins:secs|Infinite"
22 autoConfig="true|false"
23 maxWorkerThreads="num"
24 maxIoThreads="num"
25 minWorkerThreads="num"
26 minIoThreads="num"
27 serverErrorMessageFile=""
28 pingFrequency="Infinite"
29 pingTimeout="Infinite"
30 maxAppDomains="2000"
31/>
32参照MSDN:
http://msdn.microsoft.com/zh-cn/library/7w2sway1(VS.80).aspx
重点说明以下几点属性配置:
1、启用ASP.NET独立进程
Code
1
2 <processModel
3 enable="true"
4 enable设置指示ASP.NET应该启用它的独立进程而不是运行在IIS进程中。
该项缺省的值是true(启用独立进程)。如果为false(在IIS进程中运行),后续的设置将会被忽略。
2、自动重启ASP.NET进程
有5种方法可以重启ASP.NET进程
①timeout
Code
1
2<processModel
3 timeout="168:00:00"
4 通过timeout设置项,在运行了指定的时间后重新创建一个新的进程实例。
在上面的设置中在运行了168小时后(1周)会重新创建一个进程以取代现有的进程。
不过需要注意的是,计时是当接收到第一个请求时,因为ASP.NET的进程是在处理第一个请求时创建的。
这个设置非常有用,如果程序中有轻微的内存泄漏而需要周期性的重置IIS。
②requestLimit
<processModel
requestLimit="10000"
通过requestLimit设置项,在处理了指定数量的请求后,创建一个新的进程。这个对Web服务器的性能是由于处理了过多的请求后降低非常有帮助。
③memoryLimit
Code
1
2 <processModel
3 memoryLimit="50"
4 通过memoryLimit设置项,比如50,这意味着当进程使用的内存占到系统总的内存的50%时,进程会被取消,
而一个新的进程会创建出来,所有现有的请求会由这个新的进程进行处理。这个对内存泄漏非常有帮助。
④responseDeadlockInterval
Code
1
2 <processModel
3 responseDeadlockInterval="00:03:00"
4 通过responseDeadlockInterval设置项,比如3分钟,当有新的请求但没有任何响应超过3分钟时,重新启动进程。
⑤pingFrequency和pingTimeout
Code
1
2 <processModel
3 pingFrequency="00:00:30"
4 pingTimeout="00:00:05"
5 通过pingFrequency和pingTimeout设置项,系统会在pingFrequency指定的周期内探询ASP.NET进程,如果在pingTimeout时间内没有响应,重启该进程。
3、停止ASP.NET进程
有两个方法可以自动停止进程
①idleTimeout
Code
1
2 <processModel
3 idleTimeout="00:30:00"
4 通过idleTimeout设置项,如果在指定的时间内没有任何请求,进程会自动退出。在一个新的请求到来后,再重新启动进程。
②shutDownTimeout
Code
1
2 <processModel
3 shutDownTimeout="00:00:05"
4 通过shutDownTimeout设置项,当ASP.NET进程需要退出但是失败后,系统会在等待指定的时间后强行终止该进程。
4、用户连接状态检查
Code
1
2 <processModel
3 clientConnectedCheck="00:00:05"
4 在Web服务器响应比较慢时,用户可能会重复点击同一个URL。这样会增加服务器负担。甚至用户可能会取消请求,
但是服务器可能还在处理该用户的请求队列。为此,我们可以指示服务器检查用户的连接状态,如果用户已经不在线,
清除该用户所有的请求。在上面的设置中,服务器每5秒会检查每个在队列中的请求,如果用户已经离线,服务器会清除该请求。
结论:
①、IIS 5.0 隔离模式下,ASP.NET工作在一个独立的进程中。我们可以通过machine.config配置文件来使得该进程更加稳定和高效。
②、 IIS 6 进程模型(辅助进程隔离模式)下,除以下属性适用外,将忽略 processModel 节中的其他属性设置。
[*] autoConfig
[*] maxIoThreads
[*] maxWorkerThreads
[*] minIoThreads
[*] minWorkerThreads
[*] requestQueueLimit
[*] responseDeadlockInterval
若要在 IIS 6.0 中配置进程标识、循环或其他进程模型值,请使用 Internet 服务管理器用户界面来配置应用程序的 IIS 辅助进程。
详细参照
IIS 6.0 辅助进程隔离模式的应用程序池设置
页:
[1]