.net core .NET Core 3.0和IIS:HTTP错误500.30-进程内ANCM启动失败:无法加载coreclr

.net core .NET Core 3.0和IIS:HTTP错误500.30-进程内ANCM启动失败:无法加载coreclr,.net-core,iis-8,.net-core-3.0,.net Core,Iis 8,.net Core 3.0,我的应用程序在我的开发工作站上的IIS Express中运行良好,但在将其部署到IIS时遇到问题。浏览应用程序时,我收到以下错误: HTTP错误500.30-ANCM进程内启动失败 Windows事件日志中没有太多内容: Application '/LM/W3SVC/2/ROOT' with physical root 'c:\inetpub\cashflow\' failed to load coreclr. Exception message: Error occured when init

我的应用程序在我的开发工作站上的IIS Express中运行良好,但在将其部署到IIS时遇到问题。浏览应用程序时,我收到以下错误:

HTTP错误500.30-ANCM进程内启动失败

Windows事件日志中没有太多内容:

Application '/LM/W3SVC/2/ROOT' with physical root 'c:\inetpub\cashflow\' failed to load coreclr. Exception message:
Error occured when initializing inprocess application, Return code: 0x80008083
就我所见,从命令行调用时,应用程序运行良好:

以下是我在失败的请求跟踪中看到的:(我有点搞不懂为什么文件被标识为F:…Tehre在这台机器上没有F:\驱动器!)


很抱歉,我无法提供完整的跟踪XML,因为它超过100000个字符。如果您想看一些特定的内容,请告诉我,我将尝试提供相关的代码片段。感谢您提供的任何建议

我更改了Web.config中的规范,使其无法运行进程。最初,该规范适用于InProcess,如下所示:

  <aspNetCore processPath="dotnet" arguments=".\Cashflow.dll" stdoutLogEnabled="false" hostingModel="InProcess" stdoutLogFile=".\logs\stdout">

我将此更改为进程外:

  <aspNetCore processPath="dotnet" arguments=".\Cashflow.dll" stdoutLogEnabled="false" hostingModel="OutOfProcess" stdoutLogFile=".\logs\stdout">

宾果!应用程序按预期运行


有人能解释一下原因吗?

您可以通过项目-->右键单击-->属性-->调试-->托管模型来设置OutOfProcess

我必须在项目属性中设置它,否则它会一直重置我的web.config更改


我也遇到过同样的问题,在花了一段时间寻找根本原因和可能的解决方案后,我知道当同一台机器上有许多应用程序池时,就会发生这种情况,这就是我的情况

Microsoft建议错开多个应用程序的启动过程。另一种解决方案是增加启动限制

关于主机进程从入站更改为出站,这可能可行,但不会使用IS HTTP服务器,而是使用Kestrel web服务器处理请求

在这里您可以找到更多信息:


根据您安装的ASP.NET核心模块,您可以在GitHub上找到相关的源代码,然后结合行号和错误代码,您应该找出原因。有关差异,请参阅