c# - machine.config processModel autoConfig ="true or false"用于 .net 4.0 中的显式值

标签 c# asp.net webserver iis-8 machine.config

您好,我想更新我服务器的 machine.config 文件的 processModel。目前其值如下:

  <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 中使用这些设置。

在此先感谢您的帮助。

最佳答案

在此处(MSDN https://msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx)阅读有关 processModel autoConfig=true/false 时,它​​表示当此值为真时,将设置此处列出的五个配置属性(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"
         />

结果: 最大工作线程数 400 最大物联网线程数 400 最小工作线程数 4 最小物联网线程数 4

<processModel autoConfig="false"
         />

结果: 最大工作线程数 400 最大物联网线程数 400 最小工作线程数 4 最小物联网线程数 4

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

结果: 最大工作线程数= 400 最大物联网线程数= 400 最小工作线程数= 140 minIoThreads= 140

<processModel autoConfig="false"
        maxWorkerThreads = "70"
        maxIoThreads = "70"
        minWorkerThreads = "35"
        minIoThreads = "35"
         />

结果: 最大工作线程数= 280 最大物联网线程数 =280 最小工作线程数= 140 minIoTThreads =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/

相关文章:

linux - 在局域网中配置 LAMP 网络服务器

C# 不等待异步方法完成

android - 从工作站外部访问在 Eclipse 中运行的网络服务器

c# - 配置文件 'appsettings.json'未找到且不可选

javascript - 从网站提交另一个网站提交按钮

c# - 从 int 列获取值会导致 "no implicit conversion between ' int' 和 null"错误

c# - 将 DLL 加载到单独的 AppDomain 中

caching - Go webserver - 不要使用时间戳缓存文件

c# - 根据两个属性从列表中检索多个对象

c# - 客户端证书 HttpClient .Net Core Docker Linux