fre*_*shr 5 c# .net-core asp.net-core
我已经在.Net Core 2.0中的网站上工作了几个月。我刚刚升级到.Net Core 2.1,现在Startup.Configure()没有调用该方法。
我的Program课上有以下代码,该代码创建了IWebHost:
private static IWebHost BuildWebHost(string[] args)
{
return WebHost
.CreateDefaultBuilder()
.ConfigureAppConfiguration(LoadAppConfiguration)
.UseStartup<Startup>()
.Build();
}
Run Code Online (Sandbox Code Playgroud)
在我升级框架之前,它一直运行良好,可以实例化Startup并正确调用ConfigureServicesand Configure方法。
现在,尽管Startup正在实例化,Configure但不再被调用。(不会引发任何异常。)
我意识到应用程序启动中还有很多其他代码。但是,我唯一要做的就是将.Net Core SDK从2.0更新到2.1。
也许有人知道可能会发生什么变化或我可以调查什么?
事实证明,从.Net Core 2.0开始,启动顺序发生了变化。我在 GitHub 上没有找到任何文档或讨论来证实这一点,但我自己的测试已经很清楚了。
以前是被Startup.Configure打电话的WebHostBuilder.Build()。但这个调用现在被推迟到WebHost.Run()[或者WebHost.Start()如果你正在使用它]。
我设法通过注入IApplicationLifetime和注册回调来执行数据库迁移等来解决这个问题。对于它的价值,我认为现在的启动序列非常复杂,如果有一些更简单的钩子来运行代码就好了必要的要点。
感谢所有发表评论或提供建议的人。
| 归档时间: |
|
| 查看次数: |
1379 次 |
| 最近记录: |