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






4.58/5 (5投票s)
通常,当你从 Visual Studio 运行项目时,会看到此错误。 此错误本身表明在从 Visual Studio 运行项目时启动失败。
快速修复
大多数开发者倾向于寻找修复任何错误的 quickest 和 easiest 的方法,所以在深入研究之前,我将直接告诉你一些解决方案。 修复问题后,如果你有兴趣了解更多细节,请阅读本文。
这是一个由 .NET Core 抛出的非常通用的错误。 因此,不会有任何特定的解决方案,但仍然有一些解决方案,如下所示,你可以尝试看看是否能解决你的问题。
- 如果你从 Visual Studio 运行应用程序并遇到此错误,则在解决方案资源管理器中右键单击你的项目文件,然后单击“编辑项目文件”(如果看不到此选项,请转到你的文件夹并在任何编辑器中编辑你的项目文件),它将打开 .csproj 文件(如果你使用的是 C#)在你的 Visual Studio 中。
<PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel> </PropertyGroup>
在你的 .csproj 文件中,将
AspNetCoreHostingModel
值从InProcess
更改为OutProcess
,然后重新运行你的应用程序。 - 如果仍然无法解决你的问题,请在
<PropertyGroup>
中添加以下代码:<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
- 如果在你的 .csproj 文件中找不到
<PropertyGroup>
,则在解决方案资源管理器中右键单击你的 项目,单击 属性,转到 调试 部分,你将在 Web 服务器设置 下找到 托管模型 选项,选择“进程外”,保存并重新运行你的项目。
此错误意味着什么?
现在我们来看看此错误意味着什么。 这是一个非常通用的错误,并且错误本身表明这是当你从 Visual Studio 选择“进程内”运行项目时发生的“启动失败”。 因此,可能存在一些导致此错误的原因。
ASP.NET Core 2.2 应用程序默认情况下从 Visual Studio 在 IIS Express 上运行。 要启用 OutProcess
托管,将 AspNetCoreHostingModel
元素添加到 csproj 文件中,以设置 .csproj 文件或 web.config 文件中的 hostingModel
。 此外,web.config 指向一个新的模块,名为 AspNetCoreModuleV2
,该模块是进程内托管所必需的,但对于进程外托管,则需要 AspNetCoreModule
。
你正在部署的服务器没有 ANCMV2,你无法使用 IIS 进程内托管。 在这种情况下,正确的行为是在服务器上安装 dotnet 托管捆绑包,或者降级到 AspNetCoreModule
。
如何找到根本原因?
如果你想找到错误的根本原因,那么你可以查看“事件查看器”,或者你可以启用标准错误日志“stdoutLogEnabled="true"
”(如果你的项目不包含 web.config,则手动添加它)。 现在运行你的项目并检查日志,你将找到根本原因。
历史
- 2020年11月29日:初始版本