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

我在试验一个新功能。NET 核心 sdk 2.2,据说可以提高大约400% 的性能。

令人印象深刻,所以我尝试了我的 ABP (ASP.NET 样板文件)项目

Template asp.net core mvc 4.0.2.0

我在 web.mv.cproj文件中添加了以下内容

  <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>


<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
</ItemGroup>

不幸的是,我不认为这个版本的 ABP 框架是兼容的,因为项目只是运行失败,抛出: (最终)

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

在 web.config 中设置 stdoutLogEnabled="true"并重试之后,我检查了日志,但没有任何条目。

在进程设置中,是否有人成功地在 asp.net 核心上运行当前的 ABP?

我认为这可能是只有 ABP vNext 才有的东西。

378099 次浏览

在 ASP.NET Core 2.2中,使用名为 进程托管的 IIS 发布了一个新的服务器/主机模式。为了启用进程内托管,添加 csproj 元素 AspNetCoreHostingModel 以在 web.config 文件中将 hostingModel 设置为进程内托管。此外,web.config 指向一个名为 AspNetCoreModuleV2的新模块,该模块是进程内托管所必需的。

如果要部署到的目标计算机没有 ANCMV2,则不能使用 IIS InProcess 宿主。如果是这样,正确的行为是要么将 网络托管包安装到目标计算机,要么降级到 AspNetCoreModule。

资料来源: jkotalik (Github)

尝试更改 csproj 中的部分(使用文本编辑器进行编辑)

  <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>

以下..。

 <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
</PropertyGroup>

来源(Github)

如果您正在使用 VisualStudio,并且运行任何 VisualStudio 实例,请关闭它们。

您应该找到一个 .vs子文件夹 驻留 VisualStudio 解决方案(.sln文件)。
删除 .vs文件夹,然后使用进程内宿主模式再试一次。

这个发布配置文件设置为我修复:

配置发布配置文件-> 设置-> 网站扩展选项->

  • [ x ]安装 ASP.NET 核心站点扩展。

中删除 AspNetCoreHostingModel 行。Cproj 文件对我有用。在我的另一个项目中,没有这样一条线运行良好。

<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>

在我的例子中,我最近更改了 appstetings.json 文件中的一个数据库连接字符串。如果没有记录或错误捕获到位,我怀疑这个错误会导致“ HTTP Error 500.30-ANCM In-Process Start false”错误。

我碰巧注意到了 x-freestyler 和 Tahir Khalid 之间的对话,塔赫尔在对话中提出了一个国际奥委会在启动阶段遇到的问题。由于我的创业公司最近没有发生变化,但是我的 appstetings.json 发生了变化——我确定 appstetings.json 中的连接字符串是问题的原因。我纠正了一个不正确的连接字符串,问题就解决了。感谢整个社区。

NET Core 2.2或更高版本: 对于使用进程内宿主模型的64位(x64)自包含部署,禁用32位(x86)进程的应用程序池。

在 IIS Manager > Application Pools 的 Actions 侧栏中,选择 Set Application Pool Default 或 Advanced Settings。找到启用32位应用程序并将值设置为 False。

来源: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.0#create-the-iis-site

在花了一整天的时间和自己斗争,决定用 InProcess 托管在 IIS 上托管我的 asp.net 核心应用程序之后,我终于为这个问题得到解决而感到自豪和欣慰。几个小时的反复浏览相同的论坛,博客和 SO 问题,尽力解决这个问题,我仍然卡在遵循上述所有方法后。现在我来描述一下我解决这个问题的经验。

步骤1: 在 IIS 中创建网站

步骤2: 确保网站的应用程序池。Net CLR 版本设置为“无托管代码”和“启用32位应用程序”属性的 AppPool-> Advanced Settings 设置为 false

步骤3: 确保您的项目引用 .Net core 2.2

步骤4: 在 ConfigureServices 方法内的 startup.cs 文件中添加以下行

services.Configure<IISServerOptions>(options =>
{
options.AutomaticAuthentication = false;
});

步骤6: 添加以下 Nuget 包

微软。 AspNetCore。应用程序 v2.2.5或更高版本

Microsoft. AspNetCore. Server.IIS v2.2.2或更高版本

步骤7: 向.csproj 文件添加以下代码行

<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

步骤8: 构建和发布代码(最好是 X64比特)

步骤9: 确保在 etc/hosts 文件中添加了网站主机名

步骤10: 重新启动万维网出版服务

现在测试您的 asp.net 核心应用程序,它应该使用 InProcess 托管 为了验证您的应用程序是否使用 InProcess 模式托管,请检查响应头,它应该包含以下行

服务器: Microsoft-IIS/10.0(根据您的系统,IIS 版本可以是任何版本)

更新 : 下载并安装 核心主机包,这是它工作所必需的

我发现了另一个问题,它开始给出与问题中相同的错误消息。我在这里分享这一点,以便在更改项目文件之前,您可以确保您的服务正确注册。

我也在跑。Netcore 2.2,并且收到了相同的错误消息,所以我将项目文件从 InProcess 更改为 OutOfProcess,就像在选定的答案中一样。之后,当我收到“无法实例化实现类型”时,我找到了问题的真正原因: 造成这一切的原因是:

services.AddScoped<IMyService, IMyService>();

而不是

services.AddScoped<IMyService, MyService>();

相关职位: 为什么我的通用服务会出现错误“ Can not instaustementmenttype”?

对于我来说,它在 HostedService 中被错误地注入了 DBContext:

如何将 DbContext 实例注入 IHostedService?

一切都很顺利!

因为应用程序崩溃。为谁节省这个异常的时间!

错误代码说它抛出一个异常,因为它在初始阶段找不到一个文件。 请参见“环境设置”一节。在我的场景中,当我更改以下代码时,它工作了

var environment = whb.GetSetting("environment");

var environment = "Development";// whb.GetSetting("environment");

因为我有 appsettings.development.json 但是我没有 appsettings.production.json。为什么它找不到任何文件,因为它在正确的地方寻找不同的东西。

在可能的情况下,它只是一个错误,损坏和阻止解析 JSON 设置文件

和。Net Core 2.2你应该能够使用 InProcess 宿主模型,因为它自然更快: 所有东西都在 IIS 中处理,在 IIS 和应用的 Kestrel 服务器之间没有额外的 HTTP 跳转。您可能想要做的一件事是添加这个标记: AspNetCoreModuleV2 注意新的 AspNetCoreModuleV2和旧的 AspNetCoreModule 选项。 另一件要做的重要事情是,检查 Windows 应用程序事件日志,以确定罪魁祸首。尽管错误消息可能比较隐晦,但有时它们会指向导致故障的代码中的确切行号。 另外,如果您在 TFS 中使用 CI/CD,那么 appsetings.json 文件中的环境变量可能没有被正确地替换为它们的指定值,这对我来说是异常源之一。

我的 Program.cs文件有问题。我试图连接到 AddAzureKeyVault已经被删除了很久以前。

结论 :

This error could come to due to any silly error in the application. Debug step by step your application startup process.

在我的例子中,我有一次迁移,在 Azure 的特定环境中运行时失败了,但在 dev 中运行良好。当我们将服务配置为作为启动的一部分运行迁移时,Web 应用程序的实际启动将失败。

我在环境中手动运行迁移以发现问题,然后调整迁移以处理该环境中的数据差异。

如果有人知道我是如何在不直接在 DB 上手动运行的情况下看到迁移错误的,那将非常有用。

我在尝试从 OutOfProcess 宿主切换到 InProcess 宿主时遇到了类似的问题。我最近将 Net Core 项目从2.0升级到了3.0。

没有真正有用的错误继续下去,花了几天时间试图解决这个问题,我最终找到了一个修复我的情况下,我认为我会分享,以防它有助于其他人在这方面的斗争。

对我来说,它是由几个 微软 AspNetCore包引起的。

删除所有引用的 Microsoft。版本小于3.0.0的 AspNetCore 软件包(对于这些软件没有可用的升级 > = 3.0.0)不再发生此错误。

这些是我拿走的包裹

<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.8" />
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.2.1" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />

所有其他版本大于或等于3.0的微软.AspNetCore 软件包工作良好。

我也有同样的问题,结果是我这边犯了个愚蠢的错误。

在 ServiceCollection 中,我试图注册一个 abstract class

services.AddScoped<IMyInterface, MyClasss>();

哪里 MyClassabstract对于我来说一些未知的原因呵呵:)

伙计们,如果你们有 HTTP Error 500.30 - ANCM In-Process Start Failure 回顾一下你的 ServiceCollection

NET Core 3.0 + 和 Visual Studio 19 version 16.3 + 你会发现在 project. csproj 文件中的章节如下-

  <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>

那里没有 AspNetCoreHostingModel属性。您将在项目的属性中找到“托管模型”选项。在解决方案资源管理器中右键单击项目名称。单击属性。

enter image description here

单击“调试”菜单。

enter image description here

enter image description here

向下滚动以查找 HostingModel 选项。

enter image description here

选择进程之外。

enter image description here

保存项目并运行 IISExpress。

更新 服务器部署:

当您在服务器上发布您的应用程序时,会有一个如下的 web 配置文件:

enter image description here

'hostingModel'的值由 'inprocess'改为 'outofprocess'如下:

enter image description here

从一些评论中,我了解到‘ OutOfProcess’是为他们工作的,而不是‘ outofprocess’。

对我来说,一切都很好,但问题是由于发布了不同的 VS 版本,奇怪! ! !(最新版 VS 2019(16.4.2))。当我使用 VS2017发布应用程序时,它工作得很好。

真正的问题位于其发布文件夹中的依赖 json 文件(例如 MyWebApp.deps.json)中。希望对某些人有所帮助。

enter image description here

请在同一个帖子中查看我的上一个答案,以了解整个。对不起,有多个答案

经过进一步调查,问题的发生是由于 VS 2019选择了最新的补丁(VS 的默认行为)。Net core 2.2,对我来说是2.2.8来发布应用程序。我们可以通过使用

<RuntimeFrameworkVersion>2.2.4</RuntimeFrameworkVersion>

请看这里。这最终解决了我的问题,即使最新的补丁没有应用。我可以从任何 VS2017或 VS2019构建,两者都发布应用程序。Net core 2.2.0运行时版本

enter image description here

我也犯了同样的错误,问题出在微软身上。分机。包的原语版本与。网络核心版本。这是从一个项目的参考,从我的项目是参考。

曾经我在那个项目中修改了微软扩展原语。这个问题得到了解决。

在 Azure 事件日志中,检查您得到了什么错误,以及它是否与包引用相关。试试上面我提到的那件事。

由于 nuget 包与。网上版本。只需要确保引用项目的所有包也应该与。网上版本。

对我来说,我有一个复杂的应用程序启动,在其中我创建了自己的 WebHostBuilder。 这个工作得很好,但是在我尝试 InProcess 托管模式时失败了。我想我在 WebHostBuilder 里漏打了什么电话。 所以我一直打电话给网络主机。CreateDefaultBuilder (args) ,然后进行任何额外的更改——基本上与新的应用程序模板一样。

或者对于使用 IHostBuilder (而不是 IWebHostBuilder)的 asp 核心3.1模板,调用 ConfigureWebHostDefault

 public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
// add stuff here
webBuilder.UseStartup<Startup>();
});

我查看了应用程序下的 Windows 日志。它显示了错误消息和堆栈跟踪。我发现我丢失了一个名为 node _ module 的文件夹。我创建了那个文件夹,然后修复了它。

我没有对 web.config 或者项目文件做任何修改,我的.NETCoreApp 版本是3.1

使用以下链接下载.NET 核心托管包安装程序:

当前.NET 核心托管包安装程序(直接下载)

  1. 在 IIS 服务器上运行安装程序。
  2. 重新启动服务器或执行 net stop was/y 后跟 net start 命令 shell 中的 w3svc。

在我的情况下,以上的解决方案都不起作用。 但是当我从解决方案资源管理器中删除 myproject.vspscc 文件时,问题就解决了。

通过为 AspNetCoreModuleV2运行专用的应用程序池解决了我的问题

描述:

HTTP Error 500.34 - ANCM Mixed Hosting Models Not Supported

我在同一个应用程序池下运行多个应用程序。 一些应用程序正在运行

<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />

导致错误的应用程序正在运行 AspNetCoreModuleV2

<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

我为 AspNetCoreModuleV2创建了一个新的应用程序池,它解决了我的问题。

我在 Startup.cs 中出现了一个运行时错误。校园男孩错误-我对那个文件做了一个小小的调整,但是在部署到 Azure 之前没有在本地运行我的应用程序。应用程序没有成功启动,我得到了500.30错误页面。

我在 Azure 应用服务从2.2升级到3.1时遇到了这个问题。原因是应用程序服务上安装了“ ASP.NET Core 2.2(x86) Runtime”扩展。从 Kudu 删除那个扩展修复了问题!

我遇到了一些问题。净核心3.1。我尝试了所有的解决办法,但是都不管用。然后我查了 IIS 日志。问题是 Application 无法与数据库建立连接,因为连接字符串无效。因此,请查看 IIS 日志,找出问题,它可能是任何异常在运行时出现

开发服务器出现问题

在我的情况下,这是由于 SDK 版本。
我已经安装了 VS 2019的所有最新更新,但这还不够。
当我试图用 VS 开发服务器(IISExpress/Kestrel)启动 Web 应用程序时发生了错误。

为了修复这个问题,我刚刚下载并安装了最新的 软件开发工具包
当时的版本是3.1.2。
问题解决了!

我遇到了同样的问题,因为我在 Startup.cs类和 ConfigureServices方法中这样做了:

services.AddScoped<IExamle, Examle>();

但是你必须把你的 Interface写在第一页,而你的 Class写在第二页

当我的 Azure 服务立即试图从 Azure KeyVault 获得一个秘密时,我遇到了这个问题,而我忘记了向 KeyVault 提供服务许可。

以防有人跟我犯了同样的错误。

我的网站有一个 SSL 证书由证书的网站。

当我发布时,我删除了 _ Well-Known 文件夹,出现了这个错误。

enter image description here

如果我没有在我的虚拟机上解决这个问题之前30秒清空我的回收站,我可以只是恢复文件夹。

相反,我重新请求了我的证书,重新启动了该站点,问题得到了解决。

我遇到了这个问题,因为我编辑了 Program.cs 并删除了 Run 函数:

enter image description here

我在运行 Windows10的开发机器上也出现了同样的错误。在我安装了 dotnet 核心托管包之后,这个错误并没有消失。我必须去事件查看器获得详细的错误。你的潜在问题(如果有的话)可能与我的不同。重点是,希望这能帮到别人。

event viewer provided error details

哇,关于这个问题有很多答案,但是我有同样的问题,我的解决方案和我在这里读到的任何东西都不一样,而且也很简单。

我在使用正确的环境设置将我的应用程序部署到天蓝色时遇到了一些问题,所以我对 launchsetings.json 文件进行了修改,并将 IIS 配置文件中的 ASPNETCORE _ ENVIRONMENT 变量的值从“开发”改为“生产”。把它改回“发展”为我解决了这个问题。

  "profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}

在这个答案里我要说的是,确保你,呃... 在你的服务注册码里没有类似的东西。.

        while (!Debugger.IsAttached) {
Thread.Sleep(500);
}

这完全没有发生在我身上,绝对没有使我成为一个非常悲伤的男孩,在3个小时的鬼混后,所有以上的答案和更多。

确保您的 * . deps.js json 文件正确复制到部署的位置

在我的例子中,appsetings.json 文件中的值是错误的。这个值是 .\SQLEXPRESS,在我把它改为 .\\SQLEXPRESS之后,它工作了

HTTP 错误500.30-ANCM 进程内启动失败”是一个通用错误。了解有关错误的更多信息

进入 Azure Portal > Your App Service > under development tools open sole。 我们可以通过这个控制台运行应用程序,从而可视化导致应用程序无法加载的真正错误。

对于这种情况,项目名称后面跟着“ . exe”,然后按回车键。

对我们来说,它是在现有的核心项目上安装 EF5之后。

在我同事的电脑上,一篇文章发表后,他有一个 DLL 文件: mscordaccore_amd64_amd64_4.700.20.20201.dll

还有我,这个:
mscordaccore_amd64_amd64_4.700.20.36602.dll

发布后,网站返回了 HTTP Error 500.30

在我自己发布之后,网站运行良好。

这是例外,在设置或缺少库或文件依赖性,如果你是天蓝色去应用服务诊断然后日志,你会得到这个问题

我的 asp 3.1核心也有同样的问题,错误是缺少一个 json 依赖文件,所以我不得不把它添加到天蓝色的 wwwroot/ExternalDependency

当使用弹性 Bean}(EBS)部署 还有在 Amazon Web Services (AWS)中宿主时,使用这个 stackoverflow 解答如何访问 EBS 容器(https://stackoverflow.com/a/47648283/78804)中的配置值

如果在 Elastic Beanstalk -> Environments -> [APP NAME] -> Configuration -> Software菜单中没有设置配置值,您可能会看到这个错误。

在 EBS 配置中设置任何单值,都会使其消失。

这可能是由于配置加载块未能执行空检查和整个网站不正常地失败造成的,因为错误是在应用程序 Startup阶段发生的。

在我的案例中是数据库连接问题。这个错误需要更加明确。我希望他们将来会这样做。基本上,这是启动过程中 ConfigureServices 函数的一个问题。我的建议是尝试在 ConfigureServices 函数中添加所有行 try catch,这样就可以找到问题所在。

在我的例子中,在花费了大量时间之后,问题是平台的目标是 x86,并且在将其更改为任何 CPU 之后,问题就解决了。 platform target

在我的例子中,我忘记在 appseting.json 文件的两行之间添加一个逗号(,)。我添加了逗号,之后它工作。

而且是一般性的错误。要了解更多关于错误的信息,请访问 Azure Portal > your App Service > 在开发工具下打开控制台。我们可以通过这个控制台运行应用程序,从而可视化导致应用程序无法加载的真正错误。对于这种情况,我们项目的名称后面跟着“。然后按回车键。

Https://learn.microsoft.com/en-us/answers/questions/38950/http-error-50030-ancm-in-process-start-failure.html

我可以通过设置“启用32位应用程序”为“ False”来让网站运行在进程中,这是针对相应的网络核心站点应用程序池的应用程序池。

我在尝试部署(。NET Core 3.1/Angular App)通过 Visual Studio 发布到 Azure App Service。问题最终是服务器上的旧文件在发布后没有被正确删除。

修复:

  1. 单击发布配置文件上的“编辑”
  2. 设置选项卡 > 展开文件发布选项 > 检查 “删除目的地的其他文件”
  3. 重新发布

提供者: https://build5nines.com/fix-net-core-http-error-500-30-after-publish-to-app-service-from-visual-studio/

在 Visual Studio 中,我错误地将调试模式运行为“ IISExpress”,我更改了配置文件,现在一切正常

如果在使用。NET 核心应用程序,请参考以下文章。它肯定会帮助你修复它。 Https://medium.com/@aravindi.s.amarasinghe/configure-azure-key-vault-with-net-core-project-and-deploy-to-azure-app-service-7616303181e

只要检查窗口事件日志查看明确的错误