如何在启动.cs中运行/触发服务



我有一个服务可以获取令牌并保存在缓存中,我添加了如下所示的服务,但是当应用程序启动时它没有运行 我需要做什么才能在启动时触发此服务

public void ConfigureServices(IServiceCollection services)
 {
   services.AddScoped<ITokenService,TokenService>();
}
调用

services.AddScoped只是将其添加到服务集合中。结果不会发生任何事情,即它不会自动更新一个实例并在其上运行一些方法。

如果您需要在启动时发生一次某些事情,则需要在Program.cs中实际执行此操作:

public static void Main(string[] args)
{
    var host = CreateWebHostBuilder(args).Build();
    var tokenService = host.Services.GetRequiredService<ITokenService>();
    tokenService.DoSomething();
    host.Run();
}

如果这是需要在后台运行的服务,请考虑将其与托管服务一起使用

使用 ASP.NET 核心中的托管服务引用后台任务

我需要每 50 分钟触发一次

您可以做的是创建一个托管服务,按现在的方式注入令牌服务,并在需要时从托管服务中调用所需的函数。

框架工作将在启动过程中启动托管服务。

最新更新