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 进程内启动失败