如何修复错误“ANCM In-Process Handler Load Failure”?

Posted

技术标签:

【中文标题】如何修复错误“ANCM In-Process Handler Load Failure”?【英文标题】:How to fix error "ANCM In-Process Handler Load Failure"? 【发布时间】:2019-09-20 05:34:54 【问题描述】:

我正在 Windows Server 2016 Standard 上的 IIS 中设置第一个站点。 这是一个NET Core 2.2 应用程序。我无法让网站显示。

我收到此错误:

HTTP 错误 500.0 - ANCM 进程内处理程序加载失败

我可以更改什么来清除此错误并显示我的网站?

我的申请是dll

我通过命令提示符在服务器上测试了我的应用程序

dotnet ./MyApp.dll

它显示在浏览器中,但仅在服务器本身上显示 (localhost:5001/)。

使用此方法无法从任何其他服务器访问该站点。 当我通过 IIS 设置站点时,我在服务器和试图访问该站点的服务器上都收到 In-Process 错误。

起初我收到 Out-Process 错误。我读到的东西说要将此 (hostingModel="inprocess") 添加到我的web.config 所以我做了,但现在我收到了 In-Process 错误。

该网站在我的开发服务器上安装后运行良好。

事件查看器显示“IIS AspNetCore Module V2”的此错误:

无法启动应用程序“/LM/W3SVC/2/ROOT”,错误代码“0x8000ffff”。

这是我的web.config

<?xml version="1.0" encoding="utf-8"?>
    <configuration>
  <system.web>
    <customErrors mode="RemoteOnly"></customErrors>
        <identity impersonate="false" password="****" userName="****" />
  </system.web>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="false" hostingModel="inprocess" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false">
      <environmentVariables />
    </aspNetCore>
  </system.webServer>
</configuration>

【问题讨论】:

您能否运行报告并编辑您的问题以包含信息? docs.jexusmanager.com/tutorials/ancm-diagnostics.html 您能否为您尝试运行的 web/api 项目发布完整的 web.config 文件? [Azure]:HTTP 错误 500.0 – ANCM 进程内处理程序加载失败devsdaily.com/… Using .netcore 2.2 and using the `In Process` Hosting Model的可能重复 从您的解决方案中删除或注释最后修改的代码并运行应用程序。之后它工作正常。干杯。 【参考方案1】:

就我而言,在更新到 .Net 6 并使用自包含应用程序后,我开始看到此错误。

我可以手动将模块设置为 AspNetCoreModule,应用程序将在 IIS 中运行,但我知道这只是一种解决方法,因为 AspNetCoreModuleV2 应该与 .Net 6 应用程序一起使用

我在ConfigureServices 方法中有以下行:

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

删除兼容版本解决了我的问题。

services.AddMvc();

【讨论】:

【参考方案2】:

以前没有对我有用的答案。在我的情况下,“aspNetCore”标签内的“processPath”指向一个不存在的文件夹。一位同事告诉我,当 web.config 中的任何值错误时,应用程序不会启动并出现这个奇怪的错误。

【讨论】:

【参考方案3】:

修复所有项目构建错误,只需修复此问题,应用程序就会加载。

【讨论】:

【参考方案4】:

我尝试将 aspnetCoreModuleV2 更改为 aspnetCoreModuleV2,效果很好,但每次在 Visual Studio 中发布时都需要更改。 经过测试,我发现我可以将 IIS 的应用程序池默认设置更改为一般启用 32 位应用程序。

但是我没有在32位电脑上测试过,应该可以的。

见Screenshot。

【讨论】:

【参考方案5】:

就我而言,我将 app_name.exe 从我的备份文件夹放回 bin\debug,然后它就成功了。

如果您没有包含 exe 的备份文件夹,请不要担心发布您的网络应用程序/网络 API 并从那里复制

【讨论】:

【参考方案6】:

对我来说,这是由用于开发和部署的不同 web.config 文件引起的:

development: <aspNetCore requestTimeout="23:00:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" forwardWindowsAuthToken="false" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" startupTimeLimit="3600" hostingModel="InProcess">

deployment : <aspNetCore requestTimeout="23:00:00" processPath=".\Nop.Web.exe" arguments="" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" startupTimeLimit="3600" hostingModel="InProcess">

【讨论】:

【参考方案7】:

当我尝试以 List&lt;&gt; 格式从 ViewModel 获取数据并且我的数据以 IEnumerable 格式出现时,我收到了该错误。 在你们更新你的 vs2019 或删除一些文件之前,你最好检查一下那个选项。

【讨论】:

【参考方案8】:

我今天遇到了同样的问题,在服务器上安装以下软件包对我来说解决了这个问题。如果您已经在服务器上安装了任何以前版本的 Windows Hosting Bundle,则无需重新启动服务器即可安装新版本。

ASP.NET Core 3.1 Runtime (v3.1.11) - Windows Hosting Bundle

【讨论】:

【参考方案9】:

当我将 IIS Express 中的表单调试切换到 IIS 时,这发生在我身上。我检查了事件查看器 > 应用程序日志,发现有以下错误:

Executable was not found at '...\bin\Debug\netcoreapp3.1\%LAUNCHER_PATH%.exe'

然后我在下面的thread找到了解决方案。

我基本上需要用应用程序的硬编码名称替换 web.config 条目:

<aspNetCore processPath="dotnet" arguments=".\ProjectName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>

【讨论】:

【参考方案10】:

我在 .Net core 2.2 中遇到了同样的问题。当我更换

web.config:

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

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

然后它就可以正常工作了。

注意:同样的解决方案也适用于 .Net core 2.2 和其他更高版本。

【讨论】:

谢谢@Arif,遇到了同样的问题,这个解决方案非常有效。这个答案应该被认为是一个公认的答案。无论如何 +1 评分。 注意:在上面的“更多详细信息”链接中,有一个关于如何设置回进程外的回复。这是模糊的,可能不是所希望的。 github.com/dotnet/aspnetcore/issues/6111#issuecomment-451294361 任何想法什么是 AspNetCoreModuleV2 vs AspNetCoreModule? 但是每当我发布它时都会出现一个问题,每次都会更改 web webconfig 文件。 我刚刚从微软那里得到了最新的信息,这仍然是一个问题。此解决方案解决了该问题。【参考方案11】:

我相信 IISExpress 在此过程中搞砸了。

尝试以下方法:

VS 的“清洁解决方案” 转到解决方案文件夹并从那里删除 .vs 文件夹。 构建并运行。

【讨论】:

【参考方案12】:

如果其他人无法找到解决方案,这是我的方案: 我最近使用 .NET 5 开始了一个新项目,一切正常。然后我从 Preview 5 升级到了 7,突然之间我的 IIS Express 不再工作了。我的解决方法是简单地修复 Visual Studio:

.

【讨论】:

【参考方案13】:

我也收到了"HTTP Error 500.0 - ANCM In-Process Handler Load Failure"

除了我的情况...在我收到 Blue Screen of Death. 之前一切都运行良好

我有两个启动项目的解决方案。 一个是 API(出现),另一个是 WebApp(出现错误)。 Both are .NET Core 3.1..也是VS2019。

首先我尝试在 program.cs 的 Main() 中设置断点...它从来没有走到这一步。

 public static void Main(string[] args)
 
     CreateHostBuilder(args).Build().Run();
 

预感...我查看了已安装的 NuGet 包。 我卸载并(重新)安装了

Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation(3.1.6)

...现在它又开始工作了。

【讨论】:

有同样的事情(蓝屏)只需要清理解决方案并重建【参考方案14】:

删除 Web 配置中的“托管模型 ="in process"”部分。

例子:

<aspNetCore processPath="dotnet" arguments=".\WebAPICore.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />

<aspNetCore processPath="dotnet" arguments=".\WebAPICore.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

【讨论】:

【参考方案15】:

在我的情况下,只需将 MVC 添加到 Startup.cs 请按照图片进行操作。我正在尝试添加依赖注入然后显示此问题。我认为这会有所帮助。 关注这张图片:https://i.stack.imgur.com/ykw8P.png

【讨论】:

为什么要使用图片?直接显示代码,而不是让人们点击链接。【参考方案16】:

我有同样的错误。

根据微软 (https://dotnet.microsoft.com/download/dotnet-core/current/runtime) 的说法,我们应该在我们的托管服务器中安装“ASP.NET Core Hosting Bundle”。

'ASP.NET Core 托管包包括 .NET Core 运行时和 ASP.NET Core 运行时。如果安装在带有 IIS 的机器上,它还会添加 ASP.NET Core IIS 模块'

完成后,我的服务器上安装了“AspNetCoreModuleV2”,一切正常。它不需要更改您的 'web.config' 文件。

【讨论】:

【参考方案17】:

对我来说,这是因为我在我的应用程序中定义了 2 次 ASPNETCORE_ENVIRONMENT 环境变量 - 一个在 web.config 中,另一个在 applicationhost.config 中

【讨论】:

【参考方案18】:

有时这是因为多个应用程序可能使用同一个应用程序池

在这种情况下,第一个应用程序将起作用,而其他应用程序将不起作用

解决方案是为每个应用程序创建新的应用程序池。

【讨论】:

你发现了真正的问题。 是的,这就是问题所在。 @Arif 上面的答案似乎确实解决了这个问题,但可以掩盖实际问题,即多个 Web 应用程序使用同一个应用程序池。 可能是巧合,但这只是在我从 .net core 2.1 升级到 .net core 3.1 之后才发生的。在此之前,我可以在同一个应用程序池中托管多个应用程序【参考方案19】:

我在 Asp.Net Core Fails To Load 修复了这个问题 - 您需要指定程序使用进程内或进程外模型。

我将我的 CreateWebHostBuilder 更改为:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) 

    var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
    var builder = WebHost.CreateDefaultBuilder(args);

    if (env == EnvironmentName.Staging || env == EnvironmentName.Production)
        builder.UseIIS();

    builder.UseStartup<Startup>();
    return builder;

附言。我在我的 .pubxml 部署配置文件中设置了ASPNETCORE_ENVIRONMENT,方法是添加:

<PropertyGroup>
    <EnvironmentName>Staging</EnvironmentName>
</PropertyGroup>

【讨论】:

【参考方案20】:

将平台目标更改为任何 CPU。

【讨论】:

【参考方案21】:

有关详细信息,请在 web.config 中设置

stdoutLogEnabled="true"

然后检查日志文件夹。就我而言,它与项目、发布或托管设置无关——我没有复制对我的应用程序至关重要的文件是我的错。错误只是“找不到文件”D:\Development\IIS Hosting Test\filename.ext”

【讨论】:

简单而真实:)。 web api 根目录下的日志文件夹 - 看到这个 - ***.com/questions/40536073/… "你必须确保日志文件夹存在!IIS 不会为你创建。这样一个简单的解决方案令人愤怒的问题。”【参考方案22】:

打开 .csproj 文件并在 Project > PropertyGroup > AspNetCoreHostingModel 下,将值“InProcess”更改为“OutOfProcess”。

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

【讨论】:

当我从 2.2 Core 切换到 3.1 Core 时,它​​工作正常 在 .NET 5 上为我工作。AspNetCoreHostingModel 未设置,默认为 InProcess。【参考方案23】:

如果您尝试使用 IIS url 访问该站点,但 Visual Studio 已设置为使用 IISExpress,您可以获得此信息

另请参阅 ASP.Net Core 1.0 RC2 : What are LAUNCHER_PATH and LAUNCHER_ARGS mentioned in web.config?

长话短说,当您在 IIS 和 IISExpress 之间切换时,Visual Studio 会更改 web.config。如果在设置为使用 IISExpress 时使用 IIS url,那么 aspNetCore processPath 将是错误的

另外,复制 web.config 文件的情况并不少见。如果您不更改 processPath,您可能会收到相同的错误

【讨论】:

【参考方案24】:

在我的情况下,更新 .net core sdk 工作正常。

【讨论】:

【参考方案25】:

对于我的特定问题,是 IIS 中的站点权限。

我编辑了“所有人”的权限,它起作用了。我从这个页面得到了信息:https://github.com/aspnet/AspNetCore/issues/6111

【讨论】:

你不应该允许所有人。你试过 IIS_IUSRS 了吗? 感谢您的帮助。我删除了所有人,而是使用 IIS_IUSRS。

以上是关于如何修复错误“ANCM In-Process Handler Load Failure”?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 WordPress 中的 HTTP 错误

如何修复 Ubuntu 中检测到系统程序错误的问题

如何修复“找不到名称'ClipboardItem'”错误?

如何修复 C++ 中的“分段错误”错误

分段错误错误(信号名称:SIGSEGV)的原因是啥,我将如何找到/修复它?

如何修复以下错误? [复制]