このアプリケーションを構成しています 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>();
});
}
}
}
問題は何ですか?
理由がわかりました。次のように、アプリケーションに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
に登録します。
これがお役に立てば幸いです。
TanvirArjelによって引用された重複IDの問題が原因で500.30エラーが発生しましたが、appsettings.jsonファイルに不正なJSONが含まれている場合にもエラーが発生しました。スタートアップで構成値を実際に使用しようとしている場合にのみ発生するかどうかはわかりません。
このエラーが発生しました。ルートが判明したのは、私が使用していたアプリがAzure Key Vaultを使用していて、 Azureでの認証に間違ったIDを使用していたからです。
ツール>オプション> Azureサービス認証に移動して、Azureサービス認証に使用されるIDを変更する必要がありました。
その動作の理由がわからない場合は、web.configファイルでログを有効にすることができます
<aspNetCore processPath="dotnet" arguments=".\WMC.Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
そして、ログフォルダにあなたの例外の詳細な説明があります
プロダクションでの(.NET Core 2.2の)私のこの正確なエラーを解決したものIISサーバーがアプリケーションプールで32ビットアプリケーションのサポートを無効にしていた。すべてのローカルWin10で問題なく動作したIIS Expressセットアップ。
アプリケーションをVisual Studio 2019([公開]> [設定]タブ)から「展開モード:フレームワーク依存」および「ターゲットランタイム:win-x64」として公開しました。前者のオプションが重要かどうかはわかりません。
IISサーバーのエラーを修正するには、アプリケーションプールの[詳細設定]に移動し、[32ビットアプリケーションを有効にする]を[False]に設定する必要がありました。これを行うこともできます。意味がある場合はグローバルレベルで、[アクション]ペインの右側にグローバル[詳細設定]が表示されます。
program.cs
にtry catchブロックを追加すると、問題の解決に役立つ場合があります
public static void Main(string[] args)
{
try {
CreateWebHostBuilder(args).Build().Run();
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
同じアプリケーションプールを使用する(同じソリューションからの)WebアプリケーションとWeb APIサイトがある場合、同じ問題が発生しました。 Web APIの新しいアプリケーションプールを作成したときに問題を解決しました。これにより、アプリケーションプールがWebアプリケーションと共有されなくなりました。
_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
}
_