Estoy usando Asp.Net Core Web Api 6
Estoy enfrentando un error al migrar mi DbContext y al actualizar la base de datos
El error
[17:07:29 INF] Application Is Starting [17:07:29 FTL] Application terimnated unexpectedly Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException: Exception of type 'Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException' was thrown. at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.OnNext(KeyValuePair`2 value) at System.Diagnostics.DiagnosticListener.Write(String name, Object value) at Microsoft.Extensions.Hosting.HostBuilder.Build() at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build() at Program.<Main>$(String[] args) in C:\...\Program.cs:line 44Pero no afecta el proceso de migración y la actualización de la base de datos.
Por lo tanto, mi pregunta es,
Programa.cs
Log.Information("Application Is Starting"); var builder = WebApplication.CreateBuilder(args); // Full setup of serilog. We read log settings from appsettings.json builder.Host.UseSerilog((context, services, configuration) => configuration .ReadFrom.Configuration(context.Configuration) .ReadFrom.Services(services) .Enrich.FromLogContext()); // Add services to the container. builder.Services.AddDbContext<LocalDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("localConnection")) ); builder.Services.AddControllers(); builder.Services.AddCors(options => { options.AddPolicy("AllowAll", builder => builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() ); }); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); app.UseSerilogRequestLogging(configure => { configure.MessageTemplate = "HTTP {RequestMethod} {RequestPath} ({UserId}) responded {StatusCode} in {Elapsed:0.0000}ms"; }); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseCors("AllowAll"); app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();Agregue try/catch similar al anterior alrededor de IHostBulder.Build() en cualquier proyecto .NET/EF Core 6.0 RC2 e intente agregar una migración para reproducir el problema.
Podemos solucionar el problema con lo siguiente:
catch (Exception ex) { string type = ex.GetType().Name; if (type.Equals("StopTheHostException", StringComparison.Ordinal)) { throw; } _logger.Fatal(ex, "Unhandled exception"); return 1; }Para obtener más detalles sobre este tema, puede consultar este artículo.
StopTheHostException debe hacerse público para que se trate correctamente #60600