65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.58/5 (5投票s)

2020年11月29日

CPOL

2分钟阅读

viewsIcon

57796

通常,当你从 Visual Studio 运行项目时,会看到此错误。 此错误本身表明在从 Visual Studio 运行项目时启动失败。

快速修复

大多数开发者倾向于寻找修复任何错误的 quickest 和 easiest 的方法,所以在深入研究之前,我将直接告诉你一些解决方案。 修复问题后,如果你有兴趣了解更多细节,请阅读本文。

这是一个由 .NET Core 抛出的非常通用的错误。 因此,不会有任何特定的解决方案,但仍然有一些解决方案,如下所示,你可以尝试看看是否能解决你的问题。

  1. 如果你从 Visual Studio 运行应用程序并遇到此错误,则在解决方案资源管理器中右键单击你的项目文件,然后单击“编辑项目文件”(如果看不到此选项,请转到你的文件夹并在任何编辑器中编辑你的项目文件),它将打开 .csproj 文件(如果你使用的是 C#)在你的 Visual Studio 中。
    <PropertyGroup>
    	<TargetFramework>netcoreapp2.2</TargetFramework>
    	<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    </PropertyGroup>

    在你的 .csproj 文件中,将 AspNetCoreHostingModel 值从 InProcess 更改为 OutProcess,然后重新运行你的应用程序。

  2. 如果仍然无法解决你的问题,请在 <PropertyGroup> 中添加以下代码:
    <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
  3. 如果在你的 .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日:初始版本
© . All rights reserved.