我正在配置此应用程序 Confirming the account and recovering passwords in ASP.NET Core 但我有一个错误:
HTTP错误500.30-ANCM进程内启动失败的常见原因 此问题:应用程序无法启动应用程序已启动 但随后停止了应用程序已启动,但在运行期间引发了异常 启动故障排除步骤:检查系统事件日志中是否有错误 messages启用记录应用程序进程的标准输出消息 将调试器附加到应用程序过程并检查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>();
});
}
}
}
有什么问题吗?
答案 0 :(得分:7)
我有原因。可能是您在应用程序中两次注册Identity
,如下所示:
启动类的ConfigureServices
方法之一:
services.AddDefaultIdentity<IdentityUser>()
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();
IdentityHostingStartup
中的其他内容:
services.AddDefaultIdentity<IdentityUser>(config =>
{
config.SignIn.RequireConfirmedEmail = true;
}).AddEntityFrameworkStores<ApplicationDbContext>();
将Identity
注册在一个位置,即使用ConfigureServices
方法或IdentityHostingStartup
。
希望这会对您有所帮助。
答案 1 :(得分:4)
由于TanvirArjel引用的重复身份问题,我遇到了500.30错误,但是当我的appsettings.json文件中包含一些错误的JSON时,我也遇到了错误。不确定是否仅在您实际上尝试在启动中使用配置值时才会发生。
答案 2 :(得分:1)
在生产IIS服务器上为我(在.NET Core 2.2中)解决此确切错误的原因是在我的应用程序池中禁用了32位应用程序支持。在我本地的Win10 IIS Express安装程序上一切正常。
我从Visual Studio 2019(发布>设置选项卡)以“部署模式:依赖框架”和“目标运行时:win-x64”发布了我的应用程序。我不确定前一个选项是否重要。
要纠正IIS服务器上的错误,我需要进入应用程序池中的“高级设置”,并将“启用32位应用程序”设置为“假”。您也可以在全局级别执行此操作。您将在右侧的“操作”窗格中找到全局的“高级设置”。
答案 3 :(得分:0)
出现此错误。原来,原因是我使用的应用程序使用了Azure Key Vault,并且I was using the wrong identity to authenticate with Azure.
我必须转到工具>选项> Azure服务身份验证,并更改用于Azure服务身份验证的身份。
答案 4 :(得分:0)
将openiddict 2.0.0-rc2-final
更新为openiddict 2.0.0
时得到500.30
TanvirArjel的answer,指出我要从.AddOAuthValidation();
中删除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
}
答案 5 :(得分:0)
在program.cs
中添加try catch块可能有助于解决问题
public static void Main(string[] args)
{
try {
CreateWebHostBuilder(args).Build().Run();
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
答案 6 :(得分:0)
当我有一个使用相同应用程序池的Web应用程序和Web api网站(来自相同解决方案)时,我遇到了相同的问题。当我为Web api创建新的应用程序池时,我解决了该问题,以使其不再与Web应用程序共享应用程序池。
答案 7 :(得分:0)
如果您不知道该行为的原因是什么,可以在web.config文件中启用登录功能
<aspNetCore processPath="dotnet" arguments=".\WMC.Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
,然后在日志文件夹中,您将找到有关异常的详细说明
答案 8 :(得分:-1)
在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"
答案 9 :(得分:-2)
我只是尝试在Windows功能> Internet信息服务>万维网服务>应用程序开发功能中启用与ASP相关的所有功能。