在IISIntegration上运行ASP.NET Core应用程序时,Program.Main会发生什么情况?

时间:2019-01-19 17:57:31

标签: c# asp.net-core entity-framework-core

我正在开发一个ASP.NET Core应用程序,该应用程序将使用IISIntegration托管在IIS后面。过去,我已经开发了一些ASP.NET Core应用程序,但是所有这些应用程序都托管在Windows服务中,IIS通过URL重写充当反向代理。现在,我不得不使用AspNetCoreModule。

我想知道Program.Main()会发生什么。具体来说,在构建Web主机之前,我在此处调用EntityFrameworkCore的EnsureCreated()。但是,即使我的应用程序正确启动,甚至响应请求,数据库也没有填充必要的表。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

由于还有更多内容,我决定添加其余的代码

var scopeFactory = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>();
        using (var scope = scopeFactory.CreateScope())
        {
            var db = scope.ServiceProvider.GetRequiredService<DbContext>();
            db.Database.Migrate();
        }