web-dev-qa-db-fra.com

Erreur HTTP 500.30 - Erreur d'échec de démarrage du processus ANCM dans ASP.NET Core 2.2

Je configure cette application Confirmation du compte et récupération des mots de passe dans ASP.NET Core mais j'ai une erreur:

Erreur HTTP 500.30 - Échec de démarrage du processus ANCM Causes courantes de ce problème: l'application n'a pas pu démarrer l'application a démarré puis s'est arrêtée l'application a démarré mais a levé une exception lors du démarrage messages stdout du processus d'application Attacher au débogueur au processus d'application et inspecter http 500 lors du remplacement de ce code dans IdentityHostingStartup

Voici ma configuration:

[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>();
            });
        }
    }
}

Une idée quel est le problème?

11
César Desu

J'ai la raison. Peut-être que vous enregistrez Identity deux fois dans votre application comme suit:

Un dans la méthode ConfigureServices de la classe startup:

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

Et d'autres dans le IdentityHostingStartup:

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

Enregistrez Identity juste au même endroit, c'est-à-dire soit dans la méthode ConfigureServices soit dans IdentityHostingStartup.

J'espère que ceci vous aidera.

11
TanvirArjel

J'ai eu l'erreur 500.30 en raison du problème d'identité en double cité par TanvirArjel, mais je viens également de rencontrer l'erreur lorsque mon fichier appsettings.json contenait un mauvais JSON. Je ne sais pas si cela se produira uniquement si vous essayez réellement d'utiliser des valeurs de configuration dans le démarrage.

11
Bryan B

J'ai eu cette erreur. Il s'est avéré que la racine était due au fait que l'application avec laquelle je travaillais utilisait Azure Key Vault et J'utilisais la mauvaise identité pour m'authentifier auprès d'Azure.

J'ai dû aller dans Outils> Options> Authentification du service Azure et changer l'identité utilisée pour l'authentification du service Azure.

enter image description here

4
Dan Schnau

Si vous n'avez aucune idée de la raison de ce comportement, vous pouvez activer la journalisation dans le fichier web.config

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

puis dans le dossier logs vous trouverez la description détaillée de votre exception

3
DenVys

Ce qui a résolu cette erreur exacte pour moi (dans .NET Core 2.2) sur le serveur de production IIS désactivait la prise en charge des applications 32 bits dans mon pool d'applications. Tout fonctionnait bien sur mon Win10 local IIS Configuration express.

J'ai publié mon application à partir de Visual Studio 2019 (onglet Publier> Paramètres) en tant que "Mode de déploiement: dépendant du framework" et "Runtime cible: win-x64". Je ne sais pas si l'ancienne option est importante ou non.

Pour corriger l'erreur sur le serveur IIS, j'ai dû aller dans "Paramètres avancés" sur mon pool d'applications et définir "Activer les applications 32 bits" sur "Faux". Vous pouvez également le faire au niveau global si cela est logique. Vous trouverez les "Paramètres avancés" globaux à droite dans le volet "Actions".

1
Sum None

Ajouter un bloc try catch dans program.cs peut aider à résoudre le problème

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

J'ai eu le même problème lorsque j'avais une application web et un site web api (de la même solution) utilisant le même pool d'applications. J'ai résolu le problème en créant un nouveau pool d'applications pour l'API Web afin qu'il ne partage plus le pool d'applications avec l'application Web.

0
CodeCaptain

J'ai reçu 500,30 lors de la mise à jour de openiddict 2.0.0-rc2-final Vers openiddict 2.0.0

réponse de TanvirArjel m'a indiqué de supprimer .AddOAuthValidation(); de StartUp.cs

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
}
0
ono2012