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

4
我将我的项目从.net core 2.2升级到3.1,该项目在我的Visual Studio 2019中正常运行,但在分阶段服务器上出现了问题,提示错误“HTTP Error 500.30 - ANCM In-Process Start Failure”。如果我将托管模型更改为outofprocess,则可以正常工作。
因此,我尝试使用默认的.net core项目(API-.net core 3.1),并遇到了相同的问题->问题不是我的代码。我安装了sdk和hosting bundle 3.1,下面是ancm日志和dotnet信息,我注意到“Host(用于支持)”显示“版本:2.1.4”,而ancm显示“hostfxr.dll位于'E:\Program Files\dotnet\host\fxr\2.1.4\hostfxr.dll'”
为什么它不能加载最新版本,遵循Microsoft文件:https://learn.microsoft.com/en-us/dotnet/core/distribution-packaging 任何帮助或建议将不胜感激,谢谢。
.NET Core SDK (reflecting any global.json):
 Version:   3.1.200
 Commit:    c5123d973b

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.14393
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.1.200\

Host (useful for support):
  Version: 2.1.4
  Commit:  85255dde3e

.NET Core SDKs installed:
  2.1.402 [E:\Program Files\dotnet\sdk]
  2.2.207 [C:\Program Files\dotnet\sdk]
  3.1.101 [C:\Program Files\dotnet\sdk]
  3.1.102 [C:\Program Files\dotnet\sdk]
  3.1.200 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.4 [E:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.4 [E:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.4 [E:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

[aspnetcorev2.dll] Initializing logs for 'C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll'. Process Id: 4200.. File Version: 13.1.20018.2. Description: IIS ASP.NET Core Module V2. Commit: c3acdcac86dad91c3d3fbc3b93ecc6b7ba494bdc.
[aspnetcorev2.dll] Resolving hostfxr parameters for application: '.\WebApplication1.exe' arguments: '' path: 'E:\TEST1\'
[aspnetcorev2.dll] Known dotnet.exe location: ''
[aspnetcorev2.dll] Process path '.\WebApplication1.exe' is not dotnet, treating application as standalone or portable with bootstrapper
[aspnetcorev2.dll] Checking application.dll at 'E:\TEST1\.\WebApplication1.dll'
[aspnetcorev2.dll] Checking hostfxr.dll at 'E:\TEST1\.\hostfxr.dll'
[aspnetcorev2.dll] hostfxr.dll found app local at 'E:\TEST1\.\hostfxr.dll', treating application as portable with launcher
[aspnetcorev2.dll] Resolving absolute path to dotnet.exe from 'dotnet'
[aspnetcorev2.dll] Invoking where.exe to find dotnet.exe
[aspnetcorev2.dll] where.exe invocation returned: 'E:\Program Files\dotnet\dotnet.exe
C:\Program Files\dotnet\dotnet.exe
C:\Program Files (x86)\dotnet\dotnet.exe
'
[aspnetcorev2.dll] Current process bitness type detected as isX64=1
[aspnetcorev2.dll] Processing entry 'E:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2.dll] Binary type 6
[aspnetcorev2.dll] Found dotnet.exe via where.exe invocation at 'E:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2.dll] Resolving absolute path to hostfxr.dll from 'E:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2.dll] hostfxr.dll located at 'E:\Program Files\dotnet\host\fxr\2.1.4\hostfxr.dll'
[aspnetcorev2.dll] Parsed hostfxr options: dotnet location: 'E:\Program Files\dotnet\dotnet.exe' hostfxr path: 'E:\Program Files\dotnet\host\fxr\2.1.4\hostfxr.dll' arguments:
[aspnetcorev2.dll] Argument[0] = 'E:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2.dll] Argument[1] = 'E:\TEST1\.\WebApplication1.dll'
[aspnetcorev2.dll] Loading hostfxr from location E:\Program Files\dotnet\host\fxr\2.1.4\hostfxr.dll
[aspnetcorev2.dll] Canceling standard stream pipe reader
[aspnetcorev2.dll] Loading request handler:  'C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\3.1.2\aspnetcorev2_inprocess.dll'
[aspnetcorev2.dll] Creating handler application
[aspnetcorev2_inprocess.dll] Initializing logs for 'C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\3.1.2\aspnetcorev2_inprocess.dll'. Process Id: 4200.. File Version: 13.1.20018.2. Description: IIS ASP.NET Core Module V2 Request Handler. Commit: c3acdcac86dad91c3d3fbc3b93ecc6b7ba494bdc.
[aspnetcorev2_inprocess.dll] Waiting for initialization
[aspnetcorev2_inprocess.dll] Starting in-process worker thread
[aspnetcorev2_inprocess.dll] Resolving hostfxr parameters for application: '.\WebApplication1.exe' arguments: '' path: 'E:\TEST1\'
[aspnetcorev2_inprocess.dll] Known dotnet.exe location: 'E:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] Process path '.\WebApplication1.exe' is not dotnet, treating application as standalone or portable with bootstrapper
[aspnetcorev2_inprocess.dll] Checking application.dll at 'E:\TEST1\.\WebApplication1.dll'
[aspnetcorev2_inprocess.dll] Checking hostfxr.dll at 'E:\TEST1\.\hostfxr.dll'
[aspnetcorev2_inprocess.dll] hostfxr.dll found app local at 'E:\TEST1\.\hostfxr.dll', treating application as portable with launcher
[aspnetcorev2_inprocess.dll] Resolving absolute path to hostfxr.dll from 'E:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] hostfxr.dll located at 'E:\Program Files\dotnet\host\fxr\2.1.4\hostfxr.dll'
[aspnetcorev2_inprocess.dll] Parsed hostfxr options: dotnet location: 'E:\Program Files\dotnet\dotnet.exe' hostfxr path: 'E:\Program Files\dotnet\host\fxr\2.1.4\hostfxr.dll' arguments:
[aspnetcorev2_inprocess.dll] Argument[0] = 'E:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] Argument[1] = 'E:\TEST1\.\WebApplication1.dll'
[aspnetcorev2_inprocess.dll] Setting environment variable ASPNETCORE_IIS_HTTPAUTH=anonymous;
[aspnetcorev2_inprocess.dll] Setting environment variable ASPNETCORE_IIS_PHYSICAL_PATH=E:\TEST1\
[aspnetcorev2_inprocess.dll] Loading hostfxr from location E:\Program Files\dotnet\host\fxr\2.1.4\hostfxr.dll
[aspnetcorev2_inprocess.dll] Initial Dll directory: '', current directory: 'c:\windows\system32\inetsrv'
[aspnetcorev2_inprocess.dll] Setting dll directory to c:\windows\system32\inetsrv
[aspnetcorev2_inprocess.dll] Setting current directory to E:\TEST1\
[aspnetcorev2_inprocess.dll] Managed threw an exception -1073741819
[aspnetcorev2_inprocess.dll] Starting shutdown sequence 1
[aspnetcorev2_inprocess.dll] Clr thread wait ended: clrThreadExited: 1
[aspnetcorev2_inprocess.dll] Canceling standard stream pipe reader
[aspnetcorev2_inprocess.dll] Event Log: 'Application '/LM/W3SVC/7/ROOT' with physical root 'E:\TEST1\' hit unexpected managed exception, exception code = '0xc0000005'. Please check the stderr logs for more information.' 
End Event Log Message.
[aspnetcorev2_inprocess.dll] Stopping in-process worker thread
[aspnetcorev2_inprocess.dll] Stopping CLR
[aspnetcorev2_inprocess.dll] Event Log: 'Application '/LM/W3SVC/7/ROOT' with physical root 'E:\TEST1\' failed to load coreclr. Exception message:
CLR worker thread exited prematurely' 
End Event Log Message.
[aspnetcorev2_inprocess.dll] InvalidOperationException 'CLR worker thread exited prematurely' caught at F:\workspace\_work\1\s\src\Servers\IIS\AspNetCoreModuleV2\InProcessRequestHandler\inprocessapplication.cpp:420 
[aspnetcorev2_inprocess.dll] Failed HRESULT returned: 0x8007023e at F:\workspace\_work\1\s\src\Servers\IIS\AspNetCoreModuleV2\InProcessRequestHandler\dllmain.cpp:131 
[aspnetcorev2_inprocess.dll] Starting app_offline monitoring in application 'E:\TEST1\'
[aspnetcorev2_inprocess.dll] Starting file watcher thread

更新:我已经找到了根本原因,托管包3.1安装在C驱动器上,而2.1.4安装在E驱动器上。系统一直指向E驱动器,所以我必须纠正E驱动器上的安装,问题得到解决。
6个回答

10

我遇到的问题是我的 appsetting.json 配置文件中有一个无效的 JSON,导致出现了这个错误。检查一下你在应用程序中使用的 JSON。

连接字符串中有一个无效的反斜杠。


3

如果有人遇到问题,请检查appsettings.json文件是否为正确的json格式。否则,所有应用程序都将崩溃。


2

还有一个可能的问题。不要忘记在Program.cs中运行您的资源:

IHost host = CreateHostBuilder(args).Build();
//mess up your stuff here, but don't forget:
.
.
.
host.Run();


在这里添加你的调试时间,我先来: 6小时 - undefined

0

如果有人遇到 Service Fabric 无状态 .Net Core API 项目出现此错误,这可能会对您有所帮助。

快速背景:该项目在 Service Fabric 上运行,但决定远离 SF 并独立运行(在 Azure 的应用服务中)。

问题:尽管将项目从所有 SF 依赖项和引用中清除,但仍会抛出“进程内启动失败”错误。

解决方案/采取的方法: 以下更改修复了该问题,项目现在独立于 Service Fabric 模拟器/项目运行。

  1. 从.csproj中删除了Runtime标识符标签

    <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
    
  2. 将IsServiceFabricServiceProject设置为false,或者也可以将其删除。

  3. 在Program.cs中,从Main()方法中删除了向ServiceRuntime注册项目的代码,并创建了一个WebHostBuilder,如下所示 -

     public static IHostBuilder CreateHostBuilder(string[] args) =>
         Host.CreateDefaultBuilder(args)
             .ConfigureWebHostDefaults(webBuilder =>
              {
                 webBuilder.UseStartup();
              });

0

来自Microsoft Doco

在Windows上,我们建议安装Hosting Bundle,其中包括.NET Core Runtime和IIS支持。

因此,如果您正在通过IIS进行托管,则希望这样做就可以解决问题。

3.1.2 Hosting Bundle


嗨@fuzzy_logic,我尝试安装了bundle和sdk,但仍然遇到了同样的问题。 - Nhon Tran
嗯,我可以看出你安装了2.1.4,因此回答是这样的。 - fuzzy_logic

0

我已经找到了根本原因,即托管捆绑包3.1安装在C盘上,而2.1.4安装在E盘上。系统一直指向E盘,因此我必须纠正E盘上的安装,问题得以解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接