阅读documentation for ASP.NET Core , 有两种启动方法:Configure 和 ConfigureServices。
这些似乎都不是放置我想在启动时运行的自定义代码的好地方。也许我想在我的数据库中添加一个自定义字段(如果它不存在)、检查特定文件、将一些数据植入我的数据库等。我想运行一次的代码,就在应用程序启动时。
是否有首选/推荐的方法来执行此操作?
最佳答案
我同意 OP。
我的场景是,我想在服务注册表中注册一个微服务,但在微服务运行之前无法知道端点是什么。
我觉得 Configure 和 ConfigureServices 方法都不理想,因为它们都不是为执行这种处理而设计的。
另一种情况是想要预热缓存,这也是我们可能想要做的事情。
已接受的答案有多种选择:
创建另一个在您的网站之外执行更新的应用程序,例如部署工具,它在启动网站之前以编程方式应用数据库更新
在您的 Startup 类中,使用静态构造函数确保网站已准备好启动
更新
我认为最好的做法是像这样使用 IApplicationLifetime 接口(interface):
public class Startup
{
public void Configure(IApplicationLifetime lifetime)
{
lifetime.ApplicationStarted.Register(OnApplicationStarted);
}
public void OnApplicationStarted()
{
// Carry out your initialisation.
}
}
关于c# - ASP.NET Core 中的应用程序启动代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047229/