【问题标题】:How to run method once at app launch .NET 6 MVC?如何在应用程序启动 .NET 6 MVC 时运行一次方法?
【发布时间】:2022-05-17 15:03:26
【问题描述】:

如何在 .NET 6 MVC 应用程序中仅在应用程序启动时运行一次方法。 此方法将使用已配置的服务来创建默认用户/角色、播种一些配置数据并注册 HangFire 后台作业。

【问题讨论】:

  • 真正的问题是把以前在 Startup 中的调用放在哪里?最小 API 应用程序中的 HostBuilder 和 Host 类具有 Services 和 Configuration 属性,可用于添加中间件和注册服务
  • @PanagiotisKanavos 抱歉,我听不懂你的回放。我想在程序文件的 app.Run() 之后调用一次方法来检查和播种一些数据。但是 app.Run() 之后的所有代码都不会被命中或执行。

标签: .net .net-6.0


【解决方案1】:

如果你想在app.Run() 之后运行一些东西,你可能想注册到IHostApplicationLifetime.ApplicationStarted 事件。根据 MSDN,它是“在应用程序主机完全启动时触发。”。

要注册事件,请使用以下代码 sn-p:

app.Lifetime.ApplicationStarted.Register(() =>
    create default users/roles,
    seed some configuration data,
    and register HangFire background jobs
)

【讨论】:

    猜你喜欢
    • 2021-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多