嗨,我想更新我服务器的 machine.config 文件的 processModel。目前它的值(value)如下:

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

我想用以下新更改更新它:
  <system.web>
    <processModel autoConfig="true"
        maxWorkerThreads = "100"
        maxIoThreads = "100"
        minWorkerThreads = "50"
        minIoThreads = "50"
         />
  </system.web>

我想使用 processModel 的其他值(参见默认值:msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx)作为默认值,我在上面明确定义了这些值。
我在这里有一个问题:autoConfig="的值是什么?"因为互联网上的一些帖子表明 autoConfig 值必须为“True”(请参阅​​ https://tiredblogger.wordpress.com/2008/09/17/tweaking-net-machineconfig-for-production-deployments/ ),因为 autoConfig=True 将所有内容都设置为默认值,除了我明确定义的内容。

正如其他帖子所建议的那样,有必要设置 autoConfig = false 以使这些自定义值生效。 (见: http://geekswithblogs.net/StuartBrierley/archive/2009/09/30/tuning-iis---machine.config-settings.aspx )

在 MSDN ( msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx ) 中, autoConfig="true/false"的定义是

autoConfig=True:表示 ASP.NET 会根据机器配置自动配置上表中的属性以达到最佳性能。
autoConfig=False:指示 ASP.NET 应使用为前面列表中的属性显式定义的值。

这里的另一个问题是:根据 MSDN,如果我设置 autoConfig=False 并显式定义 processModel 的上述 4 个键值,那么 processModel 的其他键的值将是什么,如 webGarden、memoryLimit、cpuMask 等?我还需要设置 processModel 的其他键/值吗?
我在 iis8 Win Server 2012 上托管的 asp.net 4.0 应用程序的 machine.config 中使用这些设置。

在此先感谢您的帮助。

最佳答案

在阅读 processModel autoConfig=true/false here (MSDN https://msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx) 时,它说当这个值为 true 时,这里列出的五个配置属性(maxWorkerThreads、maxIoThreads、minFreeThreads、minLocalRequestFreeThreads 和 maxConnection)是根据知识库文章设置的在 http://support.microsoft.com/?id=821268 ”。

此外,不可能将 minWorkerThreads 设置为高于 maxWorkerThreads……运行时检测到不一致并简单地将“min”值设置为其默认值。
autoConfig 不会直接影响 minWorkerThreads 和 minIoThreads,但它们会受到它们的对应物(例如 maxWorkerThreads 和 maxIoThreads)的影响。

我使用 autoConfig=true/false 对不同的工作线程值进行了很少的测试,下面是它们的结果。

<processModel autoConfig="true"
         />

结果:
maxWorkerThreads 400
最大线程数 400
最小 worker 线程 4
最小线程 4
<processModel autoConfig="false"
         />

结果:
maxWorkerThreads 400
最大线程数 400
最小 worker 线程 4
最小线程 4
<processModel autoConfig="true"
        maxWorkerThreads = "70"
        maxIoThreads = "70"
        minWorkerThreads = "35"
        minIoThreads = "35"
         />

结果:
maxWorkerThreads = 400
最大线程数 = 400
minWorkerThreads = 140
最小线程数= 140
<processModel autoConfig="false"
        maxWorkerThreads = "70"
        maxIoThreads = "70"
        minWorkerThreads = "35"
        minIoThreads = "35"
         />

结果:
maxWorkerThreads = 280
最大线程数 =280
minWorkerThreads = 140
最小线程数 =140
<processModel autoConfig="false"
        maxWorkerThreads = "150"
        maxIoThreads = "150"
        minWorkerThreads = "70"
        minIoThreads = "70"
         />

结果:
maxWorkerThreads= 600
maxIoThreads =600
minWorkerThreads =280
minIoThreads =280


<processModel autoConfig="true"
        maxWorkerThreads = "150"
        maxIoThreads = "150"
        minWorkerThreads = "70"
        minIoThreads = "70"
         />

结果:
maxWorkerThreads= 400
maxIoThreads =400
minWorkerThreads =280
minIoThreads =280

关于c# - machine.config processModel autoConfig ="true or false"用于 .net 4.0 中的显式值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37248257/

10-10 07:36