我已经在.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();
}
在我升级框架之前,这非常有效,实例化Startup
并正确调用ConfigureServices
和Configure
方法。
现在,虽然Startup
正在实例化,但Configure
不再被调用。 (没有例外被抛出。)
我意识到我的应用程序启动时还有很多其他代码。但我唯一做的就是将.Net Core SDK从2.0升级到2.1。
也许有人知道可能会发生什么变化或我可以调查什么?
答案 0 :(得分:4)
事实证明,自.Net Core 2.0以来,启动顺序发生了变化。我没有在GitHub上找到任何文档或讨论来证实这一点,但我自己的测试已经很明确了。
过去Startup.Configure
调用了WebHostBuilder.Build()
。但是,此调用现在推迟到WebHost.Run()
[或WebHost.Start()
,如果您使用的话。“
我设法通过注入IApplicationLifetime
并注册回调来执行我的数据库迁移等来解决它。对于它的价值,我认为启动顺序现在非常复杂,如果有一个很好的话在必要的点上运行代码的几个简单的钩子。
感谢所有评论或提出建议的人。
答案 1 :(得分:1)
对我来说,答案是重启visual studio。