Asp.net 使用maxWorkerThreads调整web.config时出现内部服务器错误500

Asp.net 使用maxWorkerThreads调整web.config时出现内部服务器错误500,asp.net,asp.net-mvc,iis,http-error,tweak,Asp.net,Asp.net Mvc,Iis,Http Error,Tweak,我想提高IIS上ASP.NET Web应用程序的性能。有时,当许多用户连接到它时,它会变得太慢。此应用程序使用默认的InProc模式作为会话状态。在尝试web garden或web farm之前,我已决定尝试其他选择,例如在system.web部分下的web.config文件中调整以下参数: <system.web> <processModel maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="5

我想提高IIS上ASP.NET Web应用程序的性能。有时,当许多用户连接到它时,它会变得太慢。此应用程序使用默认的InProc模式作为会话状态。在尝试web garden或web farm之前,我已决定尝试其他选择,例如在system.web部分下的web.config文件中调整以下参数:

<system.web>  
    <processModel maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50"/>

    <httpRuntime minFreeThreads="704" minLocalRequestFreeThreads="608"/>
</system.web>

设置这些参数后,我无法访问ASP.NET应用程序,我收到错误500内部服务器错误

若我删除上述设置,应用程序将正常工作

服务器是一个虚拟机,它有一个带有12个虚拟处理器的Intel®Xeon®处理器E5 v3


有什么想法吗?

我终于解决了

为了使以下线路正常工作:

<processModel maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50"/>
其中VersionNumber对应于您正在使用的.NET Framework版本,在我的例子中是v4.0.30319

您必须在Machine.config文件中将allowDefinition从MachineOnly更改为MachineToApplication for processModel部分:

<section name="processModel" type="System.Web.Configuration.ProcessModelSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" allowLocation="false" />

最后,罪魁祸首因为下面的线不起作用:

<httpRuntime minFreeThreads="704" minLocalRequestFreeThreads="608"/>

…是因为这一行在web.config文件的下面几行被复制为:

<httpRuntime targetFramework="4.5" maxRequestLength="102400" executionTimeout="3600" maxQueryStringLength="8192" />

因此,我将它们组合成以下一个:

<httpRuntime targetFramework="4.5" minFreeThreads="704" minLocalRequestFreeThreads="608" maxRequestLength="102400" executionTimeout="3600" maxQueryStringLength="8192" />

感兴趣的链接

<httpRuntime targetFramework="4.5" minFreeThreads="704" minLocalRequestFreeThreads="608" maxRequestLength="102400" executionTimeout="3600" maxQueryStringLength="8192" />