【问题标题】:HTTP Error 500.30 - ANCM In-Process Start Failure error in ASP.NET Core 2.2HTTP 错误 500.30 - ASP.NET Core 2.2 中的 ANCM 进程内启动失败错误
【发布时间】: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>();
            });
        }
    }
}

知道是什么问题吗?

【问题讨论】:

标签: asp.net-core asp.net-core-identity asp.net-core-2.2


【解决方案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 相关的功能。

                  【讨论】:

                    猜你喜欢
                    • 2019-08-25
                    • 2020-08-23
                    • 2019-05-17
                    • 2020-02-14
                    • 2020-09-12
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-07-03
                    • 1970-01-01
                    相关资源
                    最近更新 更多