ASP.NET Processmodel配置优化

Hem*_*yal 9 asp.net processmodel

常规ASP.NET安装将使用以下配置创建machine.config:

<system.web>
    <processModel autoConfig="true" />  
Run Code Online (Sandbox Code Playgroud)

我想在web.config中覆盖一些属性值,如:

<system.web>
   <processModel 
     maxWorkerThreads="100" 
     maxIoThreads="100" 
     minWorkerThreads="40" 
     minIoThreads="30" 
     memoryLimit="60" 
   />
Run Code Online (Sandbox Code Playgroud)

我想知道我是否必须在web.config中编写所有默认属性,否则它将自动从machine.config中获取processmodel的其他默认属性?

以下是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"
/>
Run Code Online (Sandbox Code Playgroud)

bzl*_*zlm 4

Machine.config 始终是继承的。

来自MSDN

多个配置文件(全部命名为 Web.config)可以出现在 ASP.NET Web 应用程序服务器上的多个目录中。每个 Web.config 文件将配置设置应用于其自己的目录及其下面的所有子目录。除了从父目录继承的配置信息之外,子目录中的配置文件还可以提供配置信息,并且子目录配置设置可以覆盖或修改父目录中定义的设置。名为 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Machine.config 的根配置文件为整个 Web 服务器提供 ASP.NET 配置设置。

  • @kamens如果您在“Machine.config”中将“allowDefinition”更改为“MachineToApplication”,则可以。但请注意,对“processModel”的更改*将需要重新启动应用程序池,即使*在“Web.config”中定义也是如此。 (2认同)