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

Posted

技术标签:

【中文标题】HTTP 错误 500.30 - ASP.NET Core 2.2 中的 ANCM 进程内启动失败错误【英文标题】:HTTP Error 500.30 - ANCM In-Process Start Failure error in ASP.NET Core 2.2 【发布时间】:2019-06-12 08:58:32 【问题描述】:

我正在配置此应用程序 Confirming the account and recovering passwords in ASP.NET Core 但我有一个错误:

HTTP 错误 500.30 - ANCM 进程中启动失败的常见原因 此问题:应用程序无法启动应用程序已启动 但随后停止应用程序启动但在期间抛出异常 启动故障排除步骤:检查系统事件日志是否有错误 消息 启用记录应用程序进程的标准输出消息 将调试器附加到应用程序进程并检查 http 500 在 IdentityHostingStartup 中替换此代码时

下面是我的配置:

[assembly: HostingStartup(typeof(Misioneros.Stella.Maris.Web.Areas.Identity.IdentityHostingStartup))]
namespace Misioneros.Stella.Maris.Web.Areas.Identity

    public class IdentityHostingStartup : IHostingStartup
    
        public void Configure(IWebHostBuilder builder)
        
            builder.ConfigureServices((context, services) => 
                services.AddDbContext<ApplicationDbContext>(options =>
                    options.UseSqlServer(
                        context.Configuration.GetConnectionString("DefaultConnection")));

                services.AddDefaultIdentity<IdentityUser>(config =>
                
                    config.SignIn.RequireConfirmedEmail = true;
                )
                    .AddEntityFrameworkStores<ApplicationDbContext>();
            );
        
    

知道是什么问题吗?

【问题讨论】:

Using .netcore 2.2 and using the `In Process` Hosting Model的可能重复 【参考方案1】:

由于 TanvirArjel 引用的重复身份问题,我遇到了 500.30 错误,但是当我的 appsettings.json 文件中包含一些错误的 JSON 时,我也遇到了错误。不确定是否只有在您实际尝试在 Startup 中使用配置值时才会发生这种情况。

【讨论】:

这原来是我的问题,感谢发布修复! 我在secrets.json 中漏掉了一个逗号,这是出错的原因【参考方案2】:

我明白了。可能您在申请中注册了两次Identity,如下所示:

启动类的ConfigureServices方法中的一个:

services.AddDefaultIdentity<IdentityUser>()
                .AddDefaultUI(UIFramework.Bootstrap4)
                .AddEntityFrameworkStores<ApplicationDbContext>();

其他在IdentityHostingStartup

services.AddDefaultIdentity<IdentityUser>(config =>
                
                    config.SignIn.RequireConfirmedEmail = true;
                ).AddEntityFrameworkStores<ApplicationDbContext>();

在一个地方注册Identity,即在ConfigureServices方法或IdentityHostingStartup

希望这会对你有所帮助。

【讨论】:

【参考方案3】:

我遇到了这个错误。原来根是因为我正在使用的应用程序使用 Azure Key Vault,以及I was using the wrong identity to authenticate with Azure.

我必须转到 工具 > 选项 > Azure 服务身份验证 并更改用于 Azure 服务身份验证的身份。

【讨论】:

【参考方案4】:

如果您不知道该行为的原因,您可以在 web.config 文件中启用日志记录

<aspNetCore processPath="dotnet" arguments=".\WMC.Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />

然后在日志文件夹中,您将找到异常的详细描述

【讨论】:

【参考方案5】:

在生产 IIS 服务器上为我解决了这个确切的错误(在 .NET Core 2.2 中)是在我的应用程序池中禁用 32 位应用程序支持。在我的本地 Win10 IIS Express 设置上一切正常。

我从 Visual Studio 2019(发布 > 设置选项卡)将我的应用程序发布为“部署模式:依赖于框架”和“目标运行时:win-x64”。我不确定前一个选项是否重要。

要纠正 IIS 服务器上的错误,我需要进入应用程序池的“高级设置”并将“启用 32 位应用程序”设置为“假”。如果有意义的话,您也可以在全局级别执行此操作。您会在“操作”窗格的右侧找到全局“高级设置”。

【讨论】:

【参考方案6】:

当我有一个使用同一个应用程序池的 Web 应用程序和一个 Web api 站点(来自同一个解决方案)时,我遇到了同样的问题。当我为 web api 创建一个新的应用程序池时,我解决了这个问题,这样它就不再与 web 应用程序共享应用程序池。

【讨论】:

【参考方案7】:

openiddict 2.0.0-rc2-final 更新为openiddict 2.0.0 时得到500.30

TanvirArjel 的 answer,指示我从 StartUp.cs 中删除 .AddOAuthValidation();

public void ConfigureServices(IServiceCollection services)

    // updated openiddict
    services.AddOpenIddict()
            .AddCore(options =>  /*removed for brevity*/ )
            .AddServer(options =>  /*removed for brevity*/ )
            .AddValidation();

    services.AddAuthentication(options =>  /*removed for brevity*/ )
            .AddCookie()
            .AddOAuthValidation(); // this line

【讨论】:

【参考方案8】:

program.cs 中添加try catch 块可能有助于解决问题

public static void Main(string[] args)
        
            try  
            CreateWebHostBuilder(args).Build().Run();
            
            catch (Exception exception)
            
                Console.WriteLine(exception.Message);
            
        

【讨论】:

【参考方案9】:

我在 Visual Studio 更新到版本 16.4.1 后收到了这个问题,我通过更改 cs.proj 中的包引用解决了这个问题:

来自 PackageReference Include="Microsoft.AspNetCore" Version="2.2.0"

PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0"

【讨论】:

【参考方案10】:

我只是尝试在 Windows 功能 > Internet 信息服务 > 万维网服务 > 应用程序开发功能中启用所有与 ASP 相关的功能。

【讨论】:

以上是关于HTTP 错误 500.30 - ASP.NET Core 2.2 中的 ANCM 进程内启动失败错误的主要内容,如果未能解决你的问题,请参考以下文章

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

Asp.Net Core 5.0 Deploy by Plesk Panel 问题

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

.NET Core 托管到 IIS,我收到 HTTP 错误 500.30 - ANCM 进程内启动失败

ASP.NET Core api 项目 3.1 在 IIS 上发布

ASP.Net 错误“无法启动程序 http://localhost:123/myapp/”