// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ApplicationDbContext context, RoleManager <IdentityRole> roleManager, UserManager <IdentityUser> userManager) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); SeedData.InitializeAsync(context, userManager, roleManager).Wait(); }
private static void InitializeDatabase(IWebHost webHost) { using (var serviceScope = webHost.Services.CreateScope()) { var serviceProvider = serviceScope.ServiceProvider; var logger = serviceProvider.GetRequiredService <ILogger <Program> > (); logger.LogDebug("in InitializeDatabase #################################"); SeedData.InitializeAsync(serviceProvider).Wait(); } }
private static void InitializeDatabase(IWebHost host) { using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { SeedData.InitializeAsync(services).Wait(); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "Error occurred seeding the DB."); } } }
private static void InitializeDatabase(IWebHost host) { using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { SeedData.InitializeAsync(services).Wait(); //wait() se asegura de que la tarea finalize antes que la app inicie. } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "Error"); } } }
public static async Task Main(string[] args) { //Original //CreateHostBuilder(args).Build().Run(); // var host = BuildWebHost(args); // InitializeDatabase(host); // host.Run(); var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { SeedData.InitializeAsync(scope.ServiceProvider).Wait(); //await SeedData.InitializeAsync(scope.ServiceProvider); // var services = scope.ServiceProvider; // var roleManager = services.GetRequiredService<RoleManager<IdentityRole>>(); } host.Run(); }
public static void InitializeDataBase(IWebHost host) { using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { /* * 因为InitializeAsync()返回一个 Task,就必须使用 Wait() 方法以确保它在应用程序启动前完成。 * 你一般是用 await 做这件事,但是因为某些技术原因,你无法在 Program 方法中使用 await。 * 这是个罕见的例外 —— 所有其它地方你都应该用 await! */ //await SeedData.InitializeAsync(services); SeedData.InitializeAsync(services).Wait(); } catch (Exception ex) { var logger = (ILogger <Program>)services.GetService(typeof(ILogger <Program>)); logger.LogError(ex, "Error occured seeding the DB."); } } }
public static void Main(string[] args) { // CreateWebHostBuilder(args).Build().Run(); var host = CreateWebHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { SeedData.InitializeAsync(services).Wait(); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "Error occured seeding database"); } } host.Run(); }
public static void Main(string[] args) { // CreateWebHostBuilder(args).InitializeDatabase().Build().Run(); var host = BuildWebHost(args); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { SeedData.InitializeAsync(services).Wait(); var db = services.GetRequiredService <ApplicationDbContext>(); db.Database.Migrate(); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "Error Occured Seeding The DB."); } } // InitializeDatabase(host); host.Run(); }