web-dev-qa-db-ja.com

HTTPエラー500.30-ASP.NET Core 2.2でのANCMインプロセス開始エラー

このアプリケーションを構成しています ASP.NET Coreでアカウントを確認し、パスワードを回復しています しかし、エラーが発生しました:

HTTPエラー500.30-ANCMインプロセス開始の失敗この問題の一般的な原因:アプリケーションの開始に失敗しましたアプリケーションは開始しましたが、停止しましたアプリケーションは開始しましたが、起動中に例外がスローされましたトラブルシューティングの手順:エラーメッセージのシステムイベントログを確認します。アプリケーションプロセスのstdoutメッセージデバッガーにアプリケーションプロセスにアタッチし、IdentityHostingStartupでこのコードを置き換えるときにhttp 500を検査します。

以下は私の設定です:

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

問題は何ですか?

11
César Desu

理由がわかりました。次のように、アプリケーションにIdentityを2回登録している可能性があります。

スタートアップクラスのConfigureServicesメソッドに1つ:

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

そしてIdentityHostingStartupのその他:

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

Identityを1か所だけ、つまりConfigureServicesメソッドまたはIdentityHostingStartupに登録します。

これがお役に立てば幸いです。

11
TanvirArjel

TanvirArjelによって引用された重複IDの問題が原因で500.30エラーが発生しましたが、appsettings.jsonファイルに不正なJSONが含まれている場合にもエラーが発生しました。スタートアップで構成値を実際に使用しようとしている場合にのみ発生するかどうかはわかりません。

11
Bryan B

このエラーが発生しました。ルートが判明したのは、私が使用していたアプリがAzure Key Vaultを使用していて、 Azureでの認証に間違ったIDを使用していたからです。

ツール>オプション> Azureサービス認証に移動して、Azureサービス認証に使用されるIDを変更する必要がありました。

enter image description here

4
Dan Schnau

その動作の理由がわからない場合は、web.configファイルでログを有効にすることができます

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

そして、ログフォルダにあなたの例外の詳細な説明があります

3
DenVys

プロダクションでの(.NET Core 2.2の)私のこの正確なエラーを解決したものIISサーバーがアプリケーションプールで32ビットアプリケーションのサポートを無効にしていた。すべてのローカルWin10で問題なく動作したIIS Expressセットアップ。

アプリケーションをVisual Studio 2019([公開]> [設定]タブ)から「展開モード:フレームワーク依存」および「ターゲットランタイム:win-x64」として公開しました。前者のオプションが重要かどうかはわかりません。

IISサーバーのエラーを修正するには、アプリケーションプールの[詳細設定]に移動し、[32ビットアプリケーションを有効にする]を[False]に設定する必要がありました。これを行うこともできます。意味がある場合はグローバルレベルで、[アクション]ペインの右側にグローバル[詳細設定]が表示されます。

1
Sum None

program.csにtry catchブロックを追加すると、問題の解決に役立つ場合があります

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

同じアプリケーションプールを使用する(同じソリューションからの)WebアプリケーションとWeb APIサイトがある場合、同じ問題が発生しました。 Web APIの新しいアプリケーションプールを作成したときに問題を解決しました。これにより、アプリケーションプールがWebアプリケーションと共有されなくなりました。

0
CodeCaptain

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