ASP.NET Processmodel配置优化

时间:2009-12-21 10:02:16

标签: asp.net processmodel

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

<system.web>
    <processModel autoConfig="true" />  

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

<system.web>
   <processModel 
     maxWorkerThreads="100" 
     maxIoThreads="100" 
     minWorkerThreads="40" 
     minIoThreads="30" 
     memoryLimit="60" 
   />

我想知道我是否必须在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"
/>

3 个答案:

答案 0 :(得分:4)

始终继承Machine.config。

来自MSDN

  

多个配置文件,全部   名为Web.config,可以出现在   ASP.NET Web上的多个目录   应用服务器。每个Web.config   file将配置设置应用于   它自己的目录和所有孩子   它下面的目录。组态   子目录中的文件可以提供   配置信息另外   从父母继承的那个   目录和子目录   配置设置可以覆盖或   修改父级中定义的设置   目录。根配置   文件命名   SYSTEMROOT \ Microsoft.NET \框架\版本号\ CONFIG \ Machine.config中   提供ASP.NET配置   整个Web服务器的设置。

答案 1 :(得分:1)

似乎我们无法根据以下链接覆盖web.config中的processModel设置。

http://msdn.microsoft.com/en-us/library/ms178685.aspx

编辑:我没看过评论。我们可以设置MachineToApplication值,这似乎需要重新启动机器。知道会有什么副作用吗?

感谢。

答案 2 :(得分:0)

现在回答这个问题是否有意义?我做了一个测试来更改值,并使用IIS配置管理器,我看到值已更新。当然,对machine.config文件的更改适用于所有站点。我没有找到一种方法来设置每个站点的值。

Default value: 20

After changing the config

machine.config具有以下内容

   <processModel autoConfig="false" maxIoThreads="250" />

我不需要设置剩下的值。