我一直在寻找整个互联网,但仍然无法找到如何使用IIS 7更改CLR线程池的默认值maxWorkerThreads。当我选择和应用程序池并进入高级设置时,我看到了进程模型( MSDN正在互联网的各个方面喋喋不休),以配置max和min工作线程的值。但我无法找到隐藏这些属性名称的位置,每当我打开aspnet.config文件时,它都没有名称为processModel的默认元素。 此外,当我阅读本文http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx时,它会转到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ 2.0.50727.0并更改默认情况下不存在的MaxConcurrentRequestsPerCPU值,但在.net 4.0中此属性的值为默认为5000。这是否意味着我仍然需要转到上面提到的注册表路径并将其值配置为5000(可能是.net 2.0的路径我需要找到一条路径,为我提供在.net 4.0中配置相同属性的方法) 。因为这篇文章说.net 4.0依赖于maxConcurrentRequestPerCPU而不是maxConcurrentThreadsPerCPU。
最大的困惑是,如果我去IIS管理器并选择网络服务器并在右侧窗格(在IIS管理器中)单击ASP,我可以更改每个处理器限制的线程数。每个处理器限制的此线程如何与每个处理器的maxWorkerThreads或maxConcurrentThreadsPerCPU不同。我读到每个处理器的线程限制是IIS创建的线程数,所以我假设它的IIS'I / O线程不是CLR线程池工作线程。我的假设是对还是错?
请清除我的所有疑问,MSDN没有明确区分每个处理器的线程限制,maxConcurrentThreadsPerCPU和CLR的maxWorkerThreads。这一切都让人感到困惑。