我们通过InputLayer
上的 Web部署成功地将网络和database
publish
推入了Azure
(生产环境-不可用)中。由于我们具有新的数据库结构和Web内容,因此我们决定删除生产环境中的所有表,并从头开始重新发布。
运行正常但不能进行数据库数据初始化的发布(我们在DbInitializer.cs中定义的示例数据)..仅数据库结构。在“发布设置”中,我们可以看到数据库DefaultConnection和EF迁移ApplicationDBContext都已被选中。
有什么想法吗?
环境:
VS 2017
Program.cs:
- .Net Core 2.1
- SQL Server
- Azure App Service
DBInitializer.cs:
public static void Main(string[] args)
{
var host = CreateWebHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
var context = services.GetRequiredService<ApplicationDbContext>();
var userManager = services.GetRequiredService<UserManager<ApplicationUser>>();
var roleManager = services.GetRequiredService<RoleManager<ApplicationRole>>();
var dbInitializerLogger = services.GetRequiredService<ILogger<DbInitializer>>();
context.Database.EnsureCreated();
// DbInitializer.Initialize(context, );
DbInitializer.Initialize(context, userManager, roleManager, dbInitializerLogger).Wait();
}
catch (Exception ex)
{
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred creating the DB.");
}
}
host.Run();
}
答案 0 :(得分:0)
发现了问题,它与DbInitializer的当前代码(dev)有关,因为我们覆盖了SaveChangesAsync内容。